次のような JSON 応答があるとします。
"is_following": false,
これをobjective-CでBOOLに変換するにはどうすればよいですか?
これは正しくないようです:
[[NSNumber numberWithInt:(int)[profileData valueForKey:@"is_following"]] boolValue];
次のような JSON 応答があるとします。
"is_following": false,
これをobjective-CでBOOLに変換するにはどうすればよいですか?
これは正しくないようです:
[[NSNumber numberWithInt:(int)[profileData valueForKey:@"is_following"]] boolValue];
使用する JSON パーサーによって異なります。たとえば、TouchJSON を使用する場合はboolValue、解析されたオブジェクトを呼び出すだけです。[[profileData objectForKey:@"is_following"] boolValue]
-valueForKeyオブジェクト ( id) を返し、BOOLのエイリアスであるため、結果signed charを呼び出すだけです。-intValue
BOOL asBool = [[profileData valueForKey:@"is_following"] intValue];
なぜ-boolValue直接電話しないのですか?
[profileData objectForKey:@"is_following"] boolValue]
JSON フレームワークは、その JSONfalse値をNSNumber*. また、実際NSString*には にも応答する-boolValueため、脳死状態の JSON ソースが放出された場合"false"でも、カバーされます。ただし、JSON にnullまたは任意のコンテナー タイプが含まれている場合は問題が発生するため、値が実際にどのクラスであるかを再確認することをお勧めします。
*注: の-objectForKey:代わりに使用しました。-valueForKey:これが JSON の場合profileDataはNSDictionary*. -objectForKey:からデータを抽出するために使用する正しい方法NSDictionariesです。