wake-up-neo.net

Wie werde ich los? IOS version "ist teilweise: eingeführt in IOS X "Warnungen in Xcode

Ich habe also einige Orte, an denen Dinge erst nach einer bestimmten Version verfügbar sind. Ein Beispiel sind einige neue NFC - Sachen, die ich in meiner App eingeführt habe:

@property(nonatomic, retain) NFCNDEFReaderSession *nfcSession;

Ich habe es auch in Methoden, wo ich es bekomme, obwohl ich die Verfügbarkeit der Klassen überprüfe, zum Beispiel:

if ([NFCNDEFReaderSession class]){

meine App funktioniert gut, aber ich bekomme eine Xcode-Warnung 

NFCNDEFReaderSession is partial: introduced in iOS 11.0

Ich habe mich umgesehen, aber noch keine Möglichkeit gefunden, dem Compiler zu sagen, dass er in Ordnung ist, und die Warnung loszuwerden.

Zeiger sehr geschätzt!

19
Mathias

Fügen Sie am Ende des Methodennamens NS_AVAILABLE_IOS (11.0) hinzu. Zum Beispiel:

- (BOOL)tableView:(UITableView *)tableView canHandleDropSession:(id<UIDropSession>)session NS_AVAILABLE_IOS(11.0) {

}

Methodenaufrufe können im Folgenden eingeschlossen werden, um die neue API-Warnung auszuschalten

if (@available(iOS 11.0, *)) {}
30
W Dyson

Sie können bestimmte Warnungen in Teilen Ihres Codes unterdrücken, indem Sie Clang-"Pragmas" hinzufügen. In diesem Fall:

#pragma clang diagnostic Push
#pragma clang diagnostic ignored "-Wunguarded-availability"

// your code

#pragma clang diagnostic pop

Dokumentation: https://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-via-pragmas

8

Um die Warnung zum Schweigen zu bringen, ändern Sie die "Andere Warnflags" des Ziels in entweder: 

  • - Keine Teilverfügbarkeit
  • -Nicht-unbewachte Verfügbarkeit
1
Joel Teply

Sie können auch Unguarded availability in den Projekteinstellungen deaktivieren. Wenn Sie Cocoapods verwenden, ist sie jetzt standardmäßig im Projekt Pods aktiviert.

 enter image description here

0
David Gish