Есть два варианта:
(1) Вы не сохраняете объект, который вы получили от пользователя по умолчанию.Когда вы получаете объект из NSUserDefaults
, он автоматически освобождается - если вы хотите сохранить его, вы должны retain
.
(2) Вы забыли разархивировать его.Вы использовали NSKeyedArchiver
для архивации вашего объекта, но не разархивировали его:)
вы могли бы сделать что-то вроде
Object *object = [defaults objectForKey:@"object"];
вместо
NSData *data = [defaults objectForKey:@"object"];
Object *object = [NSKeyedUnarchiver unarchiveObjectWithData:data];
NBНе забывайте, что object
в моем примере все еще автоматически выпущен;если ты хочешь сохранить это, ты должен сохранить это;)