У меня были некоторые проблемы с NSDate и сохранением его в NSUserDefaults. Похоже, что каждый второй раз, когда NSUserDefaults сохраняет мою NSDate, он не может, потому что он освобожден и показывает эту ошибку в журнале.
-[__NSDate retain]: message sent to deallocated instance 0x4c20c80
Я знаю, что NSDate по-разному распределяет и освобождает от обычных объектов, но мне было интересно, если кто-нибудь знает, используя:
- (void)saveData
{
NSUserDefaults *data = [NSUserDefaults standardUserDefaults];
[data setObject:dateOpened forKey:@"dateOpened"];
[dData synchronize];
}
... или ...
- (void)loadData
{
NSUserDefaults *data = [NSUserDefaults standardUserDefaults];
dateOpened = [data objectForKey:@"dateOpened"];
}
Я выпускаю свой экземпляр NSDate и, таким образом, оставляю ему счет сохранения 0, чтобы мое приложение не могло сохранить его снова при попытке?
Я использую:
@property (retain) NSDate *dateOpened;
Любая идея была бы очень благодарна, так как я схожу с ума, пытаясь понять это. Я только учусь около 4 месяцев или около того, и я почти закончил свое первое приложение, и это главный гаечный ключ в работе!
Большое спасибо, и если вам нужно больше кода или информации о том, что я делаю, пожалуйста, дайте мне знать. : -D