Представьте себе объект 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