2 Stimmen

JSON-Framework ohne versteckte APIs?

Wie kann man angesichts all der Probleme im Zusammenhang mit versteckten APIs und der Tatsache, dass Apple jetzt vor der Freigabe von Anwendungen im App Store nach ihnen sucht, sicher sein, dass ein bestimmtes Framework versteckte APIs verwendet? Ich mag zum Beispiel das Google JSON Framework: http://code.google.com/p/json-framework/ . Ich habe keine Ahnung, ob sie versteckte APIs verwenden.

Was gibt es sonst noch für JSON, bei dem Sie sicher sein können, dass es keine versteckten APIs verwendet?

6voto

Louis Gerbarg Punkte 43196

Sie können den Code prüfen.

  1. Stellen Sie zunächst sicher, dass das Projekt ohne Warnungen kompiliert wird. Das bedeutet, dass alle Methoden, die sie verwenden, in ihren Headern deklariert werden müssen.
  2. Schauen Sie sich dann alle im Code deklarierten Kategorien an (Sie können dies selbst tun oder ein entsprechendes Tool finden).
  3. Vergewissern Sie sich, dass für alle Kategorien, die in den von allen Apple-Frameworks bereitgestellten Klassen deklariert sind, konkrete Implementierungen der deklarierten Methoden in Ihrem Code vorhanden sind. Wenn es irgendwelche Kategorien in von Apple bereitgestellten Klassen gibt, die keine konkreten Implementierungen haben, die vom Framework bereitgestellt werden, dann wird die Kategorie deklariert, um Kompilierwarnungen beim Zugriff auf private Methoden zu vermeiden.
  4. Suchen Sie nach Aufrufen von NSClassFromString, und stellen Sie sicher, dass alle Verwendungen für öffentliche Klassen sind

Es gibt noch einige andere Möglichkeiten, private APIs zu verwenden, aber diese sind nicht so häufig und werden in der Regel von Leuten verursacht, die aktiv versuchen zu verschleiern, was sie tun.

Ein bisschen mehr auf den Punkt gebracht:

Ich habe geprüft YAJL-objc und ich bin sicher, dass Jon nichts Schlechtes tut, wenn er TouchJSON weil er ein verdammt guter iPhone-Entwickler ist. Darüber hinaus kann ich nicht sehen, warum jede JSON-Bibliothek wäre, gibt es fast nichts, was sie in den privaten APIs versteckt verwenden können. Es neigt dazu, häufiger private APIs zu verwenden, um visuelle Effekte zu erreichen sind Schnittstelle mit HW-Funktionalität, die nicht ausgesetzt ist, Parsen ist wirklich nur rechnerisch.

1voto

luvieere Punkte 36219

Außerdem gibt es TouchJSON . Die akzeptierte Antwort auf diese Frage besagt, dass es sich um eine der vertrauenswürdigsten und am besten geprüften handelt.

Um die Verwendung privater APIs zu erkennen, können Sie einen Blick darauf werfen diese Frage nach einer Reihe möglicher Lösungen.

0voto

Alle aufgelisteten Bibliotheken finden Sie unter json.org .

0 Stimmen

"Alle" außer den beiden, die bisher in diesem Beitrag erwähnt wurden?!?

1 Stimmen

"Alles sehen" bedeutet nicht, dass die Website alle jemals geschriebenen Texte auflistet.

0voto

Achten Sie darauf, dass Projekte anfangen, beschreibenden Text hinzuzufügen, der bestätigt, dass sie keine privaten APIs verwenden und dies auch nicht vorhaben.

Es ist jedoch ein interessantes Problem, denn Three20 ist nicht die erste Bibliothek, der dies passiert ist. Es geht nichts über eine schnelle Überprüfung des Codes auf eigene Faust.

0voto

ingconti Punkte 9854

Ich stimme zu, dass es viele Lösungen für JSon-Parsing gibt, aber das Schreiben einer eigenen Lösung ist recht einfach.

es hängt hauptsächlich davon ab, wie kompliziert die json-Quellen sind. Typische C/c++-Implementierungen neigen dazu, viel effizienter zu sein, und in Bezug auf Ihre Frage über private APIs. solange Sie kopieren/einfügen Quellen, Sie sind sicher, dass Sie nicht mit privaten apis.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X