2014-11-16 2 views
-3

This Link to JSON file을 검색 할 때 아무 것도 반환하지 않습니다 (resultCount = 0). 여기에 내가하려고하는 것에 대한 몇 가지 코드가 있습니다.iOS의 Json에서 특정 값을 얻으려면 어떻게해야합니까?

NSData *data = [[NSData alloc] initWithContentsOfURL:@"https://itunes.apple.com/search?term=EMINEMLFLOCKAFLOCKA&entity=song&limit=3" options:NSDataReadingUncached error:&error]; 
NSDictionary *JSON = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; 
NSString *resultCount = [JSON valueForKey:@"resultCount"]; 

// Does not return anything 
NSLog(@"%@", resultCount); 

resultCount가 아무 것도 반환하지 않는 이유를 알 수 없습니다. 이 코드는 값 (0)을 저장하지 않습니까? resultCount에서 데이터를 검색하려면 어떻게해야합니까? 나는 그것으로부터 0, 1, 2, 또는 3과 같은 값을 얻으려고 노력하고있다.

+0

당신이 "RESULTCOUNT 아무것도 반환하지 않습니다"무엇을 의미합니까? 'resultCount'는'NSNumber'입니다 (하지만 당신은 그것을'NSString'으로 잘못 사용하고 있습니다). 그것은 기능이 아닙니다. "돌아 오는"것이 무엇을 기대합니까? 그리고 어떻게? **이 URL로 전달 된 JSON을보고 'resultCount'가 실제로 0인지 확인 했습니까? ** –

+0

A)'data '가 null이 아닌 것으로 확인 했습니까? B)'JSON'이 null이 아닌 것을 확인 했습니까? C) 왜'error' parms을 사용하지 않습니까? D) 왜 우리에게 JSON의 가치를 보여주지 않습니까? –

+0

@TheParamagneticCroissant 데이터에 아무 것도 없음을 표시합니다 (! data 실행에 대한 명령문). resultCount 값을 가져올 수 없다는 뜻입니까? – abc123abc

답변

1

난 당신이 컴파일러 경고 (및 충돌)이 문제를 못하고있어 놀랐어요,하지만 당신은 두 가지 문제가있다 : 당신은 NSStringinitWithContentsOfUrl, 당신이 그것에게 NSURL을 통과 할 수 없습니다

  1. 을 .
  2. resultCountNSInteger으로 구문 분석해야하며 NSString이 아니어야합니다.

고정 :

NSError* error = [NSError new]; 
NSData *data = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"https://itunes.apple.com/search?term=EMINEMLFLOCKAFLOCKA&entity=song&limit=3"] options:NSDataReadingUncached error:&error]; 
NSDictionary *JSON = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; 
NSInteger resultCount = [[JSON valueForKey:@"resultCount"] intValue]; 

// Logs 0 
NSLog(@"%ld", resultCount); 
관련 문제