J'ai un modèle CoreData dans mon application iPhone, qui est lié à une base de données SQL contenant plus de 50 000 enregistrements. Lorsque je génère les classes d'enregistrements, Xcode utilise la directive @dynamic pour les propriétés. J'ai une propriété nommée "ISFAV", type NSNumber (CoreData n'utilise pas BOOL ou Integer, il utilise des types d'objet). Être bref, je change la propriété ISFAV lorsque l'utilisateur tape sur un bouton de cette façon:Propriétés iPhone CoreData: les modifications apportées à managedObjects sont trop lentes
if (![record.ISFAV intValue])
record.ISFAV = [NSNumber numberWithInt: 1];
sinon enregistrement.ISFAV = [N ° NSNumberIntérieur: 0];
Assez simple. Mais si j'essaie de taper plusieurs fois sur le même bouton séquentiellement, l'iPhone prend trop de temps (le bouton reste en attente pendant un temps qui augmente progressivement). Cela se produit même si je change d'enregistrement, en ajoutant séquentiellement de nombreux enregistrements des favoris (au lieu d'ajouter \ supprimer le même enregistrement des favoris).
Si je change la méthode d'accesseur d'origine à @synthesize, le problème semble être résolu.
Est-il correct d'utiliser la directive synthesize pour les méthodes d'accès dans CoreData?
Merci beaucoup!
@EDIT Utilisation de la directive synthétisent, aucune modification ne sont apportées au modèle CoreData lorsque j'enregistre le contexte: - \ Le problème est toujours non résolu: - \
avez-vous déjà trouvé quel était votre problème? Je traite aussi un grand nombre d'entités et de relations, et la définition d'un simple attribut BOOL verrouille l'interface utilisateur pendant environ une demi-seconde, ce qui est inacceptable. Passer à l'attribut @synthesize accélère les choses comme vous l'avez dit, mais ce n'est pas une solution du tout. J'aimerais entendre si vous avez eu de la chance avec ça? – Rog