19

NSUserDefaultsAPIドキュメントには、次のboolForKey:ように説明されているメッセージがあります-

boolForKey:

指定されたキーに関連付けられたブール値を返します。

- (BOOL)boolForKey:(NSString *)defaultName

戻り値 ブール値がユーザー デフォルトの defaultName に関連付けられている場合、その値が返されます。それ以外の場合は、NO が返されます。

a[[NSUserDefaults standardUserDefaults] boolForKey:@"some_Key"]が NO を返した場合、キーが存在しないか、キーが存在し、boolean値が NO であることが原因である可能性があります。どのように区別できますか?今のところ、そもそもこのような状況に陥ることを避けることしかできません。

4

2 に答える 2

33

ユーザーのデフォルトを誤って使用しています。アプリの起動時に、-[NSUserDefaults registerDefaults:]すべての設定のデフォルト値を含む辞書を使用して呼び出すことになっています。

次に、ユーザーがプリファレンスを設定していない場合は-boolForKey、デフォルト値を返します。

于 2010-12-10T10:44:53.280 に答える
29

-objectForKey:メソッドも使用します。これにより、キーが存在するかどうかがわかります。

于 2010-12-10T09:59:15.097 に答える