Imagine una entidad CoreData (por ejemplo, llamada searchEngine
).
NSManagedObjectContext
gestiona algunas "instancias" de esta entidad.
El usuario final podrá seleccionar su "standard searchEngine"
con un NSPopupButton
.
El selected object
de NSPopupButton debe vincularse a NSUserDefaults.
El problema:Guardar entidades de datos centrales en NSUserDefaults
1)
@try {} ahorrar
a)
Si intenta guardar el modo de "ejemplo" directamente a NSUserDefaults llega algo como esto:-[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 intenta convertir la "instancia" a NSData viene esto:-[searchEngine encodeWithCoder:]: unrecognized selector sent to instance 0x1a25b0So ¿Alguna idea de cómo obtener estas entidades en una información compatible con plist?
2)
@try {} registerDefaultsPor lo general, el método se implementa en
registerDefaults:
+ (void)initialize
. El problema aquí es que se llama a este método antes de que CoreData cargue las entidades guardadas de su base de datos. Entonces no puedo establecer un valor predeterminado para un objeto que no existe, ¿verdad?
sé, preguntas largas ... pero: try {[me dan detalles]}; D
Mmh. ¿Sabes por qué 'array! = Nil' pero' [array count] <0' ... no quiere funcionar ... – papr
If array! = Nil, entonces no hay ningún error pero tampoco puede haber registros returned ([array count] == 0) ... sin embargo, [array count] <0 can * never * puede ocurrir ya que el mensaje de recuento devuelve un tipo NSUInteger. Es muy probable que el compilador elimine cualquier prueba de este tipo ([array count] <0). –
Sí. Quise decir ([array count] == 0). Lo siento por eso. Solo quería expresar que no hay nada en este conjunto. ;) – papr