2012-05-15 2 views
3

Если «назначить» является значением по умолчанию, могу ли я оставить его пустым, и он заставит его назначить?@property присваивать

@property BOOL sample; 

Что делать, если я определил его атомарность, а затем оставил его пустым?

@property (nonatomic) BOOL sample; 
+1

в XCode 4.3 {strong} по умолчанию, он был изменен для согласованности ARC. См. Здесь http://stackoverflow.com/questions/9773604/property-definitions-with-arc-is-strong-default-now – Justin

+0

Но тогда это дает «сильные» мои примитивы? Это невозможно. –

+1

Свойство типа сохраняемого типа объекта, которое синтезируется без источника владения, имеет право собственности на его связанную переменную экземпляра, если она уже существует; в противном случае [начиная с Apple 3.1, LLVM 3.1] его владение неявно сильная. До этого пересмотра было плохо сформировано синтезировать такое свойство. – Justin

ответ

6

Да, значения по умолчанию используются, если не указано иное. Однако, хорошая практика должна быть явной в определениях свойств. Третьей стороне легче понять, что происходит, и/или знать, что должно происходить. Кроме того, детали реализации могут измениться в будущем.

+0

В XCode 4.3 {strong} является значением по умолчанию для свойств. – Justin

3

Да, вы правы:

@property BOOL sample; 

является эквивалентом:

@property (atomic, assign) BOOL sample; 

Но, конечно же, атомная не является атрибутом, который существует, так что не использовать его :)

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