在我的一种方法中,我尝试使用NSDate
清除nil
数据,并将其保存为默认值。当我尝试保存时,我的应用已收到"EXC_BAD_ACCESS"
和崩溃。
任何想法?
也许有另一种方法来清除NSDate对象?
答案 0 :(得分:0)
为什么不使用
[userDefaults removeObjectForKey:@"yourdatekey"]
答案 1 :(得分:0)
您可以(A)将[NSNull null]
写入userDefaults,或者(B)完全从默认值中删除值,而不是尝试将NIL写入userDefaults(这将无效)。
解决方案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"]