2012-05-12 7 views
1

내가 애플 JSON (응용 프로그램의 평가)에서 무엇인가를 분석하고 있는데 내가 좋아하는 뭔가를 시도 :구문 분석 JSON 잘못된

if ([StoreParse objectForKey:@"averageUserRating"] == @"4.5") { 
     NSLog(@"xx"); 
    } else { 
     NSLog(@"xxx"); 
    } 

앱 4.5의 등급을 가지고 있으며, 내가

NSlog (@"%@", [StoreParse objectForKey:@"averageUserRating"]); 
을 할 경우를 4.5

하지만 난 스크립트를 실행할 때 첫 번째 코드의 출력에서 ​​NSlog은 "XXX"는 누군가가 나를 도울 수 않는 것입니다 :

출력은?

답변

4

이 작업을 수행 할 수 없습니다

if ([StoreParse objectForKey:@"averageUserRating"] == @"4.5") 

당신은 할 필요가 : 그것을 가정 것

if ([[StoreParse objectForKey:@"averageUserRating"] isEqualToString:@"4.5"]) 

문자열입니다. 그것이 NSNumber을의 경우 다음을 수행하십시오

문자열 평등에 대한 자세한 내용은 this question를 참조하십시오 (careful about comparing equality of floats 수 있지만)

if ([[StoreParse objectForKey:@"averageUserRating"] floatValue] == 4.5f) 

.

4

사용 isEqualToString : 두 개의 동일한 콘텐츠 문자열을 다른 메모리 주소를 가질 수있는 기본적 NSSring 클래스의 인스턴스에 대한 포인터

if ([[StoreParse objectForKey:@"averageUserRating"] isEqualToString:@"4.5"]) { 
    NSLog(@"xx"); 
} 
6

비교하는 문자열은, 에러가있다.

if ([[StoreParse objectForKey:@"averageUserRating"] isEqualToString:@"4.5"]) 

을 대신 사용하십시오.

0

averageUserRating의 값이 NSNumber 경우, 당신은 다음 형식의 NSString 첫째로 변환 리터럴 @"4.5" 문자열로 비교해야한다 :

if ([[NSString stringWithFormat:@"%1.1f", [[StoreParse objectForKey:@"averageUserRating"] floatValue]] isEqualToString:@"4.5"])