2014-01-14 3 views
0

iOS 앱에서 칸 아카데미 API를 호출하려고합니다. API 호출을 만들기 위해 AFNetworking 클래스를 사용하고 있습니다. 칸 아카데미 주제 트리가 작동하지 않음 - 객관적인 C 및 AFNetworking 2.0

  AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
manager.responseSerializer = [AFJSONResponseSerializer serializer]; 
manager.requestSerializer = [AFJSONRequestSerializer serializer]; 

[manager GET:@"http://www.khanacademy.org//api/v1/topictree" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    [activityIndicator stopAnimating]; 
    NSLog(@"no error"); 
    for (NSString *key in [responseObject allKeys]) { 
     NSLog(@"%@", [responseObject objectForKey:key]); 
    } 


} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"error"); 
    [activityIndicator stopAnimating]; 
    NSLog(@"Error Khan: %@", [error localizedDescription]); 
}]; 

내가 그것을 아주 긴 목록이었다 http://www.khanacademy.org//api/v1/topictree 방문 : 여기 내 코드입니다. 나는 하나의 NSDictionary만을 얻고 있기 때문에 JSON 구문 분석 일 수도있는 직감이있다. 위의 코드에서 볼 수 있듯이 Fast Enumeration을 사용하여 값과 키를 볼 수 있습니다.

올바른 구문 분석 인 경우. 나는 모든 주제의 목록을 얻기 위해 어떤 키를 사용해야하는지 전혀 모른다. 그런 다음 사용자가 동영상 목록을 표시하려는 주제를 클릭하면 mp4 전용 비디오 다운로드 URL에 액세스해야합니다. 그러나 재생 목록 방법에서 사용할 수 있지만 더 이상 사용되지 않습니다.

주제의 주제가 동영상 다음에 동영상 설명 다음 mp4 형식의 다운로드 가능한 URL 인 경우 목록을 볼 수 있습니다.

나는 또한 오류 오류 칸을 받고있다 :

작업을 완료 할 수 없습니다. (코코아 오류 3840).

하지만 약간의 시간이 걸립니다.

모든 도움을 주실 수 있습니다. 미리

감사 서버로부터 응답이 JSON retireve 배열 또는 객체의 유효 JSON 없기 때문에 에러 코드 JSON text did not start with array or object and option to allow fragments not set.

수단

조엘

+0

동일한 문제가 있습니다. 당신은 그들의 api explorer를 보았습니까? 내 유일한 옵션은 수동으로 파일을 읽고 어떤 종류의 목적을 상회하는 열거 된 목록을 만드는 것입니다. 이 문제를 넘어 설 수 있었습니까? –

답변

0

. 사용해보십시오

NSJSONReadingAllowFragments 

NSMutableDictionary *json = [NSJSONSerialization JSONObjectWithData:responseData options: NSJSONReadingAllowFragments error:&error]; 


NSLog(@"response: %@ error: %@", json, error);