запись NSDate инициализируется с нулевыми результатами в EXC_BAD_ACCESS - PullRequest
0 голосов
/ 20 ноября 2011

одним из моих методов я пытаюсь очистить NSDate данные с помощью nil и сохранить их по умолчанию. когда я пытаюсь сохранить его, мое приложение получает "EXC_BAD_ACCESS" и падение.

есть идеи?
может есть другой способ очистить объект NSDate?

Ответы [ 2 ]

0 голосов
/ 20 ноября 2011

Вместо того, чтобы пытаться записать NIL в userDefaults (что не работает), вы можете (A) записать [NSNull null] в userDefaults или (B) просто полностью удалить значение из значений по умолчанию.

Решение A:

Это, однако, приводит к необходимости добавить немного больше логики в ваше приложение.

Хранение:

[...]
id objectForDefaults = [NSNull null];
if (myDate != nil)
{
  objectForDefaults = myDate;
}
[userDefaults setObject:objectForDefaults forKey:@"mydate"];
[...]

поиск:

[...]
NSDate *myDate = nil;
id objectFromDefaults = [userDefaults objectForKey:@"mydate"];
if (objectFromDefaults != [NSNull null])
{
  myDate = objectFromDefaults;
}
[...]

Решение B:

[userDefaults removeObjectForKey:@"mydate"]
0 голосов
/ 20 ноября 2011

Почему бы просто не использовать

[userDefaults removeObjectForKey:@"yourdatekey"]
...