2010-12-05 3 views
3

JSON API를 사용하여 YouTube 동영상을 검색하는 멋진 iPhone 앱을 만들고 있습니다. 그러나 Google은 게으르다. 그래서 그들은 ATOM 피드를 JSON으로 변환했다. 상황이 다음과 같이 :복잡한 YouTube API에서 JSON의 NSDictionaries 및 NSArrays

feed->entry[0]->author[0]->name->$t 

이것은 내가 개체의 배열의 객체 배열의 객체의 키의 값을 얻을 필요가 같이있는 NSArray 밖으로 정보를 얻는 것은 어렵다는 것을 의미한다 키의. json으로는 정확 경우

  1. 사용 전 검사 할 각 항목에 대한 코드의 엄청난 금액 : 구조가 올바른지

    나는 두 가지를 선택할 수 있습니다, 확인하십시오.
  2. 모든 것을 @try 블록으로 둘러 쌉니다.

나는 두 번째를 선택하고 싶습니다. 문제는 언젠가는 이것이 나쁜 습관이라고 읽었습니다. 그렇지? 그렇다면 NSArrays 및 NSDictionary를 검증하는 짧은 방법이 있습니까? 사용자가 런타임에 프로세서를 제거하더라도 내 응용 프로그램이 충돌하지 않을 수 있으므로 전혀 확인하지 않는 것이 좋습니다.

도와주세요. 감사. 당신은 모든 항목에 디 필요 그래서 내가 이해 확실하지 않다

답변

1

당신이의 GData API를 시도 ... 당신이 유는 어디에서 온 장해야 결코 예외로 얻을 수있는 메시지를 제외하고 (내가 생각하고 있지 않다 이유가 확신) 이상 ? 나는 Youtube Feed를 위해 나의 응용 (http://itunes.apple.com/us/app/skystop/id392782307?mt=8)을 위해 그것을 사용하고있다. 그것은 기본적으로 당신이 요청한 것에 대한 XML 파일을 뱉어 내고 plist 파일이나 NSArray로 바로 변환 할 수 있습니다.

+0

실제로 내 질문에 대한 대답은 아니지만 문제가 해결되었습니다. 감사! : D –

+0

문제 없음 :) GData API를 작성하는 데 시간이 걸립니다. 나는 당신이 필요로하지 않는 것들 (예 : 구글 워드 프로세서, 캘린더)에 대한 폴더를 제거한 다음 매번 빌드 할 필요가 없도록 정적 라이브러리를 구축 할 것을 권장합니다. 물론 사전 빌드 된 라이브러리를 이미 사용하고있는 경우가 아니면. –

0

는 API 자체는 대신 ATOM의 JSON에서 작동? 이것이 맞다면이 API를 지원하기 위해 Google 코드에서도 만들었을 도우미 라이브러리를 웹에 표시하는 것 외에는 할 수있는 일이 많지 않습니다. 어떤 경우 # 2에서

은 일반적으로 더 많은 시스템 리소스를 다음 간단한 부울 뺨 또는 검사를 소비하는 첫 번째 시도 캐치 이후의 모든 나쁜 관행이다. 당신이 구문 분석 및 확인에 가고 싶은 경우 catch 블록에 한 번 두 번째 당신은 당신이 할 수있는 모든 때문에 가지 문제에 인쇄는, 사용자 또는 자신에게 오류가 발생하면 할 수 없습니다 ... 마지막 하지만

+0

예외가 어디에서 발생하는지 또는 어떤 일이 발생하는지는 상관하지 않습니다. 앱이 충돌하지 않는 한 괜찮습니다. 나는 거대한 양의 비디오를지도에 표시하기 위해 반복하고 있습니다. 나는 단순히 API를 신뢰하지 않는다. :) –

0

JSON을 직접 파싱 하시겠습니까? 그렇다면 외부 프레임 워크를 사용하여 작업을 수행하는 것이 좋습니다. 내 자신의 프로젝트 중 몇 가지에서 Json 프레임 워크를 사용하고 있습니다.

http://code.google.com/p/json-framework/
+0

이미 해당 프레임 워크를 사용하고 있습니다. :) –