Imaginez une entité CoreData (par exemple nommée searchEngine
).
NSManagedObjectContext
gère certaines "instances" de cette entité.
L'utilisateur final sera en mesure de sélectionner son "standard searchEngine"
avec un NSPopupButton
.
Le selected object
de NSPopupButton doit être lié à NSUserDefaults.
Le problème:Enregistrer les entités CoreData dans NSUserDefaults
1)
@try {} sauver
a)
Si vous essayez d'enregistrer sélectionné "instance" directement NSUserDefaults il arrive quelque chose comme ceci:-[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value ' (entity: searchEngine; id: 0x156f60 ; data: { url = " http://google.de/ "; someAttribute = 1; name = "google"; })' of class 'searchEngine'.
b)
Si vous essayez de convertir le "instance" à NSData vient ceci:-[searchEngine encodeWithCoder:]: unrecognized selector sent to instance 0x1a25b0Ainsi une idée de comment obtenir ces entités dans une donnée compatible avec le plist?
2)
@try {} registerDefaultsHabituellement la méthode
registerDefaults:
est mis en œuvre+ (void)initialize
. Le problème ici est que cette méthode est appelée avant que CoreData charge les entités sauvegardées de sa base de données. Donc, je ne peux pas définir un défaut à un objet inexistant, non?
Je sais, longues questions ... mais: try {[me fournir: détails]}; D
Mmh. Savez-vous pourquoi 'array! = Nil' mais' [array array] <0' ... il ne veut pas travailler ... – papr
Si array! = Nil alors il n'y a pas d'erreur mais il n'y a peut-être pas d'enregistrements retourné ([array count] == 0) ... cependant, [array count] <0 ne peut * jamais * se produire puisque le message count renvoie un type NSUInteger. Le compilateur supprime probablement un tel test ([array count] <0). –
Oui. Je voulais dire ([nombre de tableaux] == 0). Désolé. Je voulais seulement exprimer qu'il n'y a rien dans ce tableau. ;) – papr