2009-11-17 4 views
2

앱 스토어에 무엇이든지 공개되기 전에 숨겨진 API와 애플이 문제를 겪고있는 상황에서, 특정 프레임 워크가 숨겨진 API를 사용하고 있는지 어떻게 확신 할 수 있습니까? 예를 들어 Google JSON 프레임 워크 (http://code.google.com/p/json-framework/)를 좋아합니다. 숨겨진 API를 사용하고 있는지 잘 모르겠습니다.숨겨진 API가없는 JSON 프레임 워크?

숨겨진 API를 사용하고 있지 않은 것으로 확신 할 수있는 JSON에는 어떤 것이 있습니까?

답변

6

코드를 감사 할 수 있습니다.

  1. 먼저 프로젝트가 경고없이 컴파일되는지 확인하십시오. 즉, 사용하는 모든 메서드를 헤더에 선언해야합니다.
  2. 그런 다음 코드에서 선언 된 모든 범주를 살펴보십시오 (직접 수행하거나이를 수행 할 수있는 도구를 찾으십시오).
  3. 모든 Apple 프레임 워크에서 제공하는 클래스에서 선언 된 모든 범주에 대해 코드에서 선언 한 메서드가 구체적으로 구현되어 있는지 확인하십시오. 프레임 워크에서 제공 한 구체적인 구현이없는 클래스를 Apple에서 제공하는 클래스가있는 경우 클래스를 선언하여 개인 메서드에 액세스하는 경고를 컴파일하지 않도록합니다.
  4. NSClassFromString에 대한 호출을 찾아, 그리고 그것의 모든 사용이 public 클래스
  5. 에 대한 있는지 확인

이 그들이 개인 API를 사용하여 할 수있는 몇 가지 다른 방법이 있습니다,하지만 그들은 일반적인 아니며 의해 발생하는 경향이 사람들은 자신이하는 일을 난독 화하려고 적극적으로 노력합니다.

점에 조금 더 : 나는 YAJL-objc 자신을 감사 한

을, 그는 빌어 먹을 좋은 아이폰 개발자이기 때문에 나는 존이 TouchJSON 나쁜 아무것도하지 않는 것을 확신합니다. 그 외에도 JSON 라이브러리가있는 이유를 알 수 없으며 사설 API에서 숨겨진 것을 거의 사용할 수 없습니다. 비공개 API를 사용하면 노출되지 않는 HW 기능을 인터페이스로 사용하여 시각적 효과를 얻는 것이 더 일반적입니다. 파싱은 실제로 계산 만합니다.

1

TouchJSON도 있습니다. 가장 신뢰할만한 가치가 있고 잘 테스트 된 질문 중 하나 인 this에 대한 답변이 허용됩니다.

비공개 API-s의 사용을 탐지하는 방법으로는 this 질문을 살펴보고 몇 가지 가능한 해결책을 찾아 볼 수 있습니다.

0

json.org에 나열된 모든 라이브러리를 참조하십시오.

+0

"이"이 게시물에서 지금까지 언급 한 두 가지를 제외하고 "모두"?!? – Meltemi

+1

"모두보기"는 그 사이트가 지금까지 작성된 모든 것을 나열한다는 의미는 아닙니다. –

0

비공개 API를 사용하지 않고 계획하는 설명 텍스트를 추가하는 프로젝트를 찾습니다.

흥미로운 문제이지만 Three20은 처음 발생한 라이브러리가 아닙니다. 독자적으로 코드를 빠르게 검토 할 수는 없습니다.

0

나는 JSon 구문 분석에 많은 해결책이 있다는 것에 동의하지만 독자적인 솔루션을 작성하는 것은 매우 간단합니다.

주로 json 소스가 얼마나 복잡한 지에 따라 달라집니다. 일반적인 C/C++ 임펠 릿션은 개인 API에 관한 질문과 관련하여 매우 효율적입니다. 원본을 복사하거나 과거의 원본 인 경우 개인 api를 사용하지 않을 것입니다.

관련 문제