2015-02-14 3 views
2

Из бета-версии XCode6.3 он вводит значение nullability для Objective-C, чтобы упростить взаимодействие между быстрым и oc, кажется, для этого есть четыре варианта, которые являются ненулевыми, обнуляемыми, null_unspecified и null_resettable. Они могут применяться к свойствам, параметру и типу возвращаемого значения, но что такое значение по умолчанию, если вы не укажете. Я думаю, что null_unspecified, но я хочу заранее подтвердить это.Какое значение по умолчанию для аннотации nullability в Swift1.2

ответ

2

Все указатели рассматриваются как null_unspecified, если вы не указали иначе. После того, как вы начнете аннотировать, вы начнете получать предупреждения в этом классе, пока не будете аннотировать все. Вы можете изменить настройки по умолчанию для блока кода nonnull с помощью нового #pragma знака:

@interface MyObject : NSObject 
#pragma clang assume_nonnull begin 

// ... 

#pragma clang assume_nonnull end 
@end 

Обратите внимание, что null_resettable могут быть применены только к свойствам, а не параметров или возвращаемых типов. Его цель - разрешить сброс свойств, назначив их nil. Пример от Apple: tintColor, который возвращается к заданному по умолчанию заданию nil.

+0

Поскольку значение null_unspecified является значением по умолчанию, и в объекте-c многие указатели имеют тенденцию быть ненужными, а apple рекомендует использовать проверенные регионы во всех заголовках объектных-c, поэтому в Xcode6.3 и выше новая прагма не будет быть утомительным шаблоном? – tounaobun

+0

Правильно, поэтому они добавили #pragma - вы можете в целом пометить весь свой заголовок как ненулевой, а затем только аннотировать исключаемые значения исключения. –

Смежные вопросы