2011-01-16 4 views
0

Objective-C에서 SBJsonParser를 사용하여이 JSON 값을 처리하는 방법을 알 수 없습니다.
JSON은 "success":true (더 큰 JSON 개체의 내부)로 반환됩니다.
파문을 잘 짚으시고 처럼 "po"를 입력하면 결과는 간단히 1이됩니다.
IF 문에서 테스트하는 방법을 알아 내려고 노력 중입니다. == 1, == true, == TRUE, == YES== [NSNumber numberWithInt:1] 모두가 false를 반환하려고 시도했습니다.iPhone에서 SBJsonParser 부울 값

나는 이것을 어떻게 테스트합니까?

답변

7

SBJSON는 +numberWithBool:로 만든 NSNumber 인스턴스와 같은 논리 값을 (기본 데이터는 사실에 대한 허위에 대한 0, 1입니다)을 반환합니다. -boolValue을 보내면 해당하는 BOOL 값을 얻을 수 있습니다. 예를 들어,

BOOL success = [[jsonObject objectForKey:@"success"] boolValue]; 
if (success) 
{ 
    NSLog(@"yay!"); 
} 
else 
{ 
    NSLog(@"oops"); 
} 
+0

빠른 설명 : 이유'== [의 NSNumber numberWithInt : 1] '작동하지 않는이 개체 식별을위한 테스트라는 것이다 - 사용'[[의 NSNumber numberWithInt : 1] ISEQUAL : [된 JSONObject objectForKey : @ "success"]]''boolValue'가 더 좋았지 만, 또한 효과가있었습니다. –

+0

@Jesse 또 다른 옵션은'kCFBooleanTrue' 또는'kCFBooleanFalse'와 비교할 것입니다. '([jsonObject objectForKey : @ "success"] == (id) kCFBooleanTrue)''하지만,'-boolValue'를 선호합니다. –