[NSKeyedUnarchiver initForReadingWithData:]:数据为NULL

时间:2013-06-04 22:15:04

标签: ios objective-c nsuserdefaults

我保存到NSUserDefaults的设置中有一个非强制性对象,没有合理的默认值。在用户为此对象设置值之前,当我从NSUserDefaults取消归档时,应用程序会生成错误“[NSKeyedUnarchiver initForReadingWithData:]:data为NULL”。我忽略了错误,否则应用程序工作正常。

是否有最好的做法可以避免这种情况,这是一个担心吗?

1 个答案:

答案 0 :(得分:22)

我不确定你的归档是什么,但是如果你可以先解开密钥,那么在你取消归档之前,你可以这样做:

if ([[[NSUserDefaults standardUserDefaults] dictionaryRepresentation].allKeys containsObject:@"keyForNonMandatoryObject"]) {
        // unarchive the value here
    }