Ecriture fichier

Eric P.Eric P. Membre
19:30 modifié dans API UIKit #1
Bonjour à  tous,

Dans iPocket Draw, pour enregistrer les fichiers j'utilise un NSMutableData *theData; et un NSKeyedArchiver *encoder; , chacun de mes types d'objet à  une fonction d'encodage avec des commandes du style [encoder encodeFloat:x1 forKey:@x1]; puis j'écris le fichier avec [theData writeToFile:path atomically:YES];.
Ca fonctionne mais ça devient rapidement lent quand le nombre d'objet augmente, par exemple avec 1600 objets, il faut 30 secondes pour la sauvegarde.
Y-a-t-il un moyen d'améliorer cela ?
Ma méthode n'est-elle pas adaptée ?
Y-a-t-il beaucoup de risque si j'utilise atomically:NO ?

Merci.

Eric

Réponses

  • CéroceCéroce Membre, Modérateur
    19:30 modifié #2
    En effet, l'enregistrement en .plist est lent. Apple déconseille leur utilisation pour les modèles complexes.

    Mais... 1600 objets sur le petit écran de l'iPhone ? Tu les a créé par programmation ou quoi ?
  • muqaddarmuqaddar Administrateur
    19:30 modifié #3
    dans 1243530685:

    Bonjour à  tous,

    Dans iPocket Draw, pour enregistrer les fichiers j'utilise un NSMutableData *theData; et un NSKeyedArchiver *encoder; , chacun de mes types d'objet à  une fonction d'encodage avec des commandes du style [encoder encodeFloat:x1 forKey:@x1]; puis j'écris le fichier avec [theData writeToFile:path atomically:YES];.
    Ca fonctionne mais ça devient rapidement lent quand le nombre d'objet augmente, par exemple avec 1600 objets, il faut 30 secondes pour la sauvegarde.
    Y-a-t-il un moyen d'améliorer cela ?
    Ma méthode n'est-elle pas adaptée ?
    Y-a-t-il beaucoup de risque si j'utilise atomically:NO ?

    Merci.

    Eric


    Oui il va p-e falloir passer à  SQLite ?
  • Eric P.Eric P. Membre
    19:30 modifié #4
    Il s'agit d'un dessin créé dans iPocket Draw, donc manuellement.
    Bon c'est pas une oeuvre d'art ni même un plan juste plein d'objets faits n'importe comment pour voir les limites du soft et de l'iPhone.
    Les limites de l'écran ne sont pas gênantes puisqu'iPocket Draw n'est pas limité à  la taille de l'écran car le programme permet le scrolling et le zoom.

    Plutôt que SQLite et comme j'ai déjà  une routine d'écriture au format RealCADD (texte pur) pour l'envoi par mail, je vais donc m'orienter vers cette solution également pour l'enregistrement.

    Il faudra que je fasse une routine de conversion, dommage.

    Merci pour les réponses.

    Eric
Connectez-vous ou Inscrivez-vous pour répondre.