16

私が NSUserDefaults に保存している設定の中には、すぐに使用できるデフォルトを設定する意味がない、必須ではないオブジェクトがあります。ユーザーがこのオブジェクトの値を設定するまで、NSUserDefaults からアーカイブを解除すると、アプリは「[NSKeyedUnarchiver initForReadingWithData:]: data is NULL」というエラーを生成します。私はエラーを無視しています。それ以外の場合、アプリは正常に動作します。

これを回避するためのベスト プラクティスはありますか? また、これは懸念事項ですか?

4

1 に答える 1

22

何を解凍しているのか正確にはわかりませんが、解凍する前に最初にキーを確認できる場合は、次のようにすることができます。

if ([[[NSUserDefaults standardUserDefaults] dictionaryRepresentation].allKeys containsObject:@"keyForNonMandatoryObject"]) {
        // unarchive the value here
    }
于 2013-06-04T23:11:39.070 に答える