Stellen Sie sich eine CoreData-Entität vor (z. B. searchEngine
).
NSManagedObjectContext
verwaltet einige "Instanzen" dieser Entität.
Der Endbenutzer kann seinen "standard searchEngine"
mit einem NSPopupButton
auswählen.
Die selected object
von NSPopupButton sollte an die NSUserDefaults gebunden werden.
Das Problem:CoreData-Entitäten in NSUserDefaults speichern
1)
@try {speichern}
a)
Wenn Sie versuchen, die ausgewählte "instance" direkt zu speichern, um NSUserDefaults es so etwas wie das kommt:-[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)
Wenn Sie versuchen, die "Instanz" in NSData umzuwandeln kommt so:-[searchEngine encodeWithCoder:]: unrecognized selector sent to instance 0x1a25b0So Irgendeine Idee, wie man diese Entitäten in Plist-kompatible Daten bringt?
2)
@try {registerDefaults}Normalerweise sind die
registerDefaults:
Methode wird in+ (void)initialize
umgesetzt. Das Problem besteht darin, dass diese Methode aufgerufen wird, bevor CoreData die gespeicherten Entitäten aus seiner Datenbank lädt. Also kann ich keinen Standard auf ein nicht existierendes Objekt setzen, oder?
Ich weiß, lange Fragen ... aber: try {[me liefern: details]}; D
Mmh. Weißt du, warum 'array! = Nil' aber' [array count] <0' ... es nicht funktionieren will ... – papr
Wenn array! = Nil dann gibt es keinen Fehler, aber es kann auch keine Datensätze geben returned ([array count] == 0) ... [array count] <0 kann * nie * auftreten, da die Count-Nachricht einen NSUInteger-Typ zurückgibt. Der Compiler löscht höchstwahrscheinlich einen solchen Test ([array count] <0). –
Ja. Ich meinte ([array count] == 0). Das tut mir leid. Ich wollte nur ausdrücken, dass es in diesem Array nichts gibt. ;) – papr