ContexteObjective-C: appliquer erreur de compilation en cas de violation d'annotation de la nullabilité
Nous avons développé iOS dynamique public/cadre MacOs. Le framework est écrit en Objective-C, mais il est totalement compatible avec Swift.
Récemment, nous avons changé l'annotation de nullité pour une de nos méthodes API publiques:
de
- (void)setServer:(nullable ABCLocation *)location;
à
- (void)setServer:(nonnull ABCLocation *)location;
, donc développeur aurait besoin de créer [ABCLocation default]
instance et laissez-passer à la nouvelle API.
Question
Maintenant, nous, comment faire respecter/notifier aux développeurs de modifier leur code existe autour de notre nouvelle API?
Lorsque vous utilisez l'API avec Swift, il semble assez bien gérer la nullabilité en lançant une erreur.
Objective-C, cependant, génère un avertissement que lorsque nil
est passé, Xcode ne fait rien, lorsque les développeurs passe une propriété nullable
à la méthode.
Comment imposer aux développeurs de modifier leur API? Quelles sont les pratiques courantes ici?
UPD:
Nous distribuons le cadre comme binaire, construit avec configuration Edition, où les assertions sont désactivées.
UPD # 2:
Jusqu'à présent, nous avons accepté la réalité lorsque notre API est utilisée à partir Objective-C. Cependant, nous avons implémenté un comportement "fail safe": si nil
est passé, la méthode crée en interne l'instance [ABCLocation default]
et la transmet implicitement.
"Xcode ne fait rien, lorsque les développeurs passent une propriété nullable à la méthode." Quelque chose d'autre est faux, vous devriez recevoir des avertissements si c'était le cas. – Mike