-1

Facebook経由でログインすると、ログに以下のようなメッセージが表示されます。

*** -[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value '<null>' of class 'NSNull'.  Note that dictionaries and arrays in property lists must also contain only property values.

その意味は何ですか?なぜこのメッセージが来るのですか?

facebook.mクラスで私は次のように設定しています

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSNull null] forKey:@"FBAccessTokenKey"];
[defaults setObject:[NSNull null] forKey:@"FBExpirationDateKey"];
4

2 に答える 2

5

[NSNull null]NSUserDefaultsでは使用できません。

あなたが使うことができますremoveObjectForKey:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults removeObjectForKey:@"FBAccessTokenKey"];
[defaults removeObjectForKey:@"FBExpirationDateKey"];

または、何かを設定することを主張する場合は、空の文字列を設定できます@""

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"" forKey:@"FBAccessTokenKey"];
[defaults setObject:@"" forKey:@"FBExpirationDateKey"];
于 2012-10-05T11:56:16.237 に答える
1

NSUserDefaultsはデータをプロパティリスト(/var/mobile/Library/Preferences/[BUNDLE_ID].plist)にシリアル化するため、設定されたすべてのプロパティはプロパティリストオブジェクト、つまりNSArray、NSDictionary、NSString、NSNumber、NSData、NSDateである必要があります。キーの値を削除する場合は、- removeObjectForKey:NSUserDefaultsのメッセージを使用してください。

于 2012-10-05T12:00:40.867 に答える