Вместо того, чтобы пытаться записать 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"]