En Objective-C Je suis utilisé pour déclarer des propriétés qui se connectent à Interface Builder avecUne propriété IBOutlet doit-elle être marquée nullable ou non?
@property (nonatomic, weak) IBOutlet UIView *myView;
Maintenant, j'ai une classe qui utilise les nouveaux attributs de XCode-nullité. Pour préserver la compatibilité avec Swift, quel attribut nullability devrait avoir un IBOutlet
? Selon « Using Swift with Cocoa and Objective-C » Apple:
Lorsque vous déclarez une prise à Swift, vous devez faire une option non emballé implicitement le type de sortie. De cette façon, vous pouvez laisser le storyboard connecter les prises à l'exécution, après l'initialisation. Lorsque votre classe est initialisée à partir d'un fichier storyboard ou xib, vous pouvez supposer que la prise a été connectée.
Cela signifie-t-il que la sortie doit être déclarée nonnull
en Objective-C?
Les propriétés sans annotation de nullité sont importées en tant qu'options non dépliées implicitement. Le rendre 'nonnull' l'importerait comme non-optionnel. Votre 'IBOutlet's devrait être déclaré dans votre fichier .m de toute façon, peu importe ce que vous annotez avec. – dan