2016-09-19 3 views
5

verweigert worden ist es, was Apple-Feedback: Ihre App verwendet oder Verweise die folgenden nicht-öffentlichen APIs:Meine App wegen der nicht-öffentlichen APIs

  • init:

Die Verwendung von nicht öffentlichen APIs ist im App Store nicht zulässig, da dies zu einer schlechten Nutzererfahrung führen kann, sollten sich diese APIs ändern.

was mich am meisten verwirrt ist, dass "init:", ich meine wirklich, was falsch mit "init:"? Wir können nicht "init:" verwenden? Was ist mehr, wenn wir nicht-öffentliche APIs verwenden in Xcode? Wie kann ich diese nicht öffentlichen APIs finden?

+1

Ich würde Apple ansprechen, oder vielleicht noch einmal versuchen. Es scheint eine Menge Probleme mit nicht-öffentlichen API mit der Veröffentlichung von iOS 10 gewesen. – Paulw11

Antwort

3

Sie sollten wirklich nichts mit dem Namen init: verwenden. Das wäre eine init Methode mit einem Parameter, aber keine Erklärung darüber, was dieser Parameter ist. Zum Beispiel:

- (instancetype) init:(NSString *)string; 

Das wäre immer ein falscher Name. Der richtige Name wäre:

- (instancetype) initWithName:(NSString *)string; 

(oder initWithTitle: oder initWithSomeOtherThingButSomething:)

So würde ich zuerst für init: suchen, und das sollte leicht reparierbar sein. Wenn Sie keine Methoden mit diesem Namen haben, dann ist dies möglicherweise ein Fehler in Apples Tool und Sie müssen es mit Apple besprechen.

+1

Ich stimme zu. Ich denke, der Doppelpunkt ist ein Werbegeschenk. Ich hatte Probleme, wo ich versehentlich eine private Methode implementiert habe; Es ist leicht, wegen des globalen Namespace aus Versehen zu tun. Aber in jedem Fall sollte es keine Methode namens 'init: 'geben. Sie können 'init' ohne Parameter oder' initWithThing: 'und einen Parameter, aber nicht' init: 'aufrufen. – matt

+0

Ich suche "init:" in meinem ganzen Projekt dann gibt es zwei Ergebnisse: - 'id writer = [[_SBJsonWriterClass alloc] init: [[NSArray alloc] initWithObjects: @" Grundfunktionen ", @" Erweiterte Funktionen ", @ "Zubehörpositionierung", @ "", nil]]; ' -' id parser = [[_SBJSONParserClass alloc] init: [[NSArray alloc] initWithObjects: @ "Grundfunktionen", @ "Erweiterte Funktionen", @ "Zubehör Positionierung ", @" ", nil]];' Sie sind beide in der AFJSONUtilities.m-Datei von AFNetwork.Wie kann ich dieses Problem lösen, ohne AFNetworking zu löschen? Nur den Namen ändern? –

+3

Aktualisieren Sie AFNetworking. Das klingt nach einer alten Version (wahrscheinlich vor 1.0?). Es ist wichtig, die Herstellerbibliotheken regelmäßig zu aktualisieren. –

Verwandte Themen