Должен ли я использовать файл с возможностью NULL/nonnull в файле реализации

Я хочу использовать функцию nullability Objective-C. Но следует ли мне аннотировать файл с нулевым/ненулевым реализацией или только интерфейс?

Ответ 1

Единственная причина объявить обнуляемость - это получить обратную связь от компилятора (см. https://developer.apple.com/swift/blog/?id=25).

Как наилучшая практика, вы всегда должны указывать в своих объявлениях значения NULL и nonnull (или _Nullable и _Nonnull).

Итак, вы должны сделать это для всех своих интерфейсов, но в зависимости от ваших стандартов кодирования вы можете реализовать методы с областью действия класса (или категории) без их объявления, и в этом случае объявление является реализацией, и вы должны объявить их значения неопределенности.

Вы всегда можете объявлять обнуляемость для реализаций, объявленных в интерфейсах, но, на мой взгляд, это ухудшает ремонтопригодность.