2015-04-09 7 views

Antwort

11

Apple hat zwei neue Anmerkungen hinzugefügt: __nullable und __nonnull. Der Zeiger __nullable kann einen NULL- oder NULL-Wert haben, während __nonnull keinen haben sollte.

Wie Sie in swift wissen sollten, können Sie Optionals (?) Verwenden, aber in Objective-C können Sie nicht. Diese Attribute können Sie Objective-C-Code erstellen, die verständliche durch rasche und complier warnen Sie, wenn Sie die Regel brechen, zum Beispiel:

@property (copy, nullable) NSString *name; 
@property (copy, nonnull) NSArray *allItems; 

Dies wird in schnellen ‚übersetzt‘ werden:

var name: String? 
var allItems: [AnyObject]! 

ungleich NULL:

Dies wird von NSHipster genommen Zeigt an, dass der Zeiger sollte/wird nie Null sein. Zeiger , die mit nichtnull kommentiert sind, werden in Swift als ihr nicht-optionaler Basiswert (d. H. NSData) importiert.

Nullwert: Gibt an, dass der Zeiger in der allgemeinen Praxis null sein kann. Importiert in Swift als optionaler Wert (NSURL?).

null_unspecified: Setzt die aktuelle Funktionalität von in Swift als implizit unverpackt optional fort, idealerweise zu wird nur während dieses Annotationsprozesses verwendet.

null_resettable: Zeigt an, dass eine Eigenschaft zwar immer einen Wert haben kann, aber zurückgesetzt werden kann, indem nil zugewiesen wird. Eigenschaften mit einem Nicht-Null-Standardwert können auf diese Weise kommentiert werden, wie tintColor. Importiert in Swift als (relativ sicher) implizit unverpackt optional. Dokumentieren Sie entsprechend!

+0

Also im Grunde; Diese Attribute werden nur im Zusammenhang mit Swift verwendet, oder? –

+2

Hauptsächlich ja, aber Sie erhalten Compiler-Warnungen, wenn Sie versuchen, NULL auch der Eigenschaft zuzuweisen, die in Objective-C als nicht-null markiert ist. – Greg