Представьте себе объект CoreData (например, с именем searchEngine
). NSManagedObjectContext
управляет некоторыми "экземплярами" этого объекта.
Конечный пользователь сможет выбрать свой "standard searchEngine"
с помощью NSPopupButton
. selected object
NSPopupButton должен быть привязан к NSUserDefaults.
Проблема:
1)
@try {save}
a)
Если вы попытаетесь сохранить выбранный "экземпляр" непосредственно в NSUserDefaults, произойдет следующее:- [NSUserDefaults setObject: forKey:]: попытка вставить значение не-свойства '(entity: searchEngine; id: 0x156f60; данные: { url = " http://google.de/"; someAttribute = 1; name = "google"; }) 'класса' searchEngine '.
b)
Если вы попытаетесь преобразовать "экземпляр" в NSData, это будет выглядеть следующим образом:-[searchEngine encodeWithCoder:]: unrecognized selector sent to instance 0x1a25b0Итак, любая идея, как получить эти объекты в данных, совместимых с plist?
2)
@try {registerDefaults}Обычно метод
registerDefaults:
реализуется в+ (void)initialize
. Проблема здесь в том, что этот метод вызывается до того, как CoreData загрузит сохраненные объекты из своей базы данных. Таким образом, я не могу установить значение по умолчанию для не существующего объекта, не так ли?
Я знаю, длинные вопросы... но: try {[me обеспечить: подробности]}; D