Zeiger fehlt ein Spezifizierer für die Angabe der Nullwertfähigkeit
In Xcode 7 GM ich begann, um diese Warnung:
Zeiger fehlt, ist ein null-Zulässigkeit Typ Bezeichner (_Nonnull, _Nullable, oder _Null_unspecified)
In der folgenden Funktionsdeklaration (NSUserDefaults-Erweiterung)
- (void)setObject:(nullable id)value
forKey:(NSString *)defaultName
objectChanged:(void(^)(NSUserDefaults *userDefaults, id value))changeHandler
objectRamains:(void(^)(NSUserDefaults *userDefaults, id value))remainHandler;
Warum diese Warnung zeigt und wie sollte ich das lösen?
InformationsquelleAutor der Frage kelin | 2015-09-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie
nullable
auch für die Behandler/- BlöckeWarum? Es ist wegen Swift. Swift ermöglicht optionale Parameter (?), die Objective-C nicht. Dies geschieht als eine Brücke zwischen den beiden von Ihnen für den Swift compiler weiß, dass diese Parameter optional sind. Ein 'Null' sagt der Swift-compiler, dass das argument erforderlich ist. Eine null ist optional
Für mehr info Lesen:
https://developer.apple.com/swift/blog/?id=25
InformationsquelleAutor der Antwort Ares
Können Sie die folgenden Makros, um Blöcke von Deklarationen (Variablen und Funktionen) in objective-c Header:
Müssen Sie dann fügen Sie nullable Anmerkungen für Referenzen, die null in diesem block. Dies gilt sowohl für die Funktion Parameter-und Variablen-Deklarationen.
In:
Edit* warum??? ist denn für einen objective-c-Klasse auf Interoperabilität mit swift, die Sie brauchen, um zu erklären, null-Zulässigkeit, so dass der compiler weiß zur Behandlung von Eigenschaften wie swift Optionen oder nicht. Nullable objective c Eigenschaften sind bekannt als optionals in swift und verwenden Sie diese Makros in Zusammenhang mit der nullable-declarators für Eigenschaften kann der compiler behandelt Sie wie Optionen (Optionen sind Monaden - ein Objekt, das hüllt sich entweder das Objekt oder null).
InformationsquelleAutor der Antwort Kevin
Er die richtige Arbeitsmethode Erklärung, angenommen durch compiler:
InformationsquelleAutor der Antwort kelin
Poste ich diese Antwort zu sagen, warum sollte hinzufügen
_Nonnull
odernullable
.Laut diesem blog: https://developer.apple.com/swift/blog/?id=25
es ist alles für Swift.
InformationsquelleAutor der Antwort fishtrees