2012-06-27 3 views

ответ

1

Это не требовалось до реализации «Современные Runtime ", который ru ns в 64-разрядных приложениях Mac и iOS. Другие приложения, которые используют «Время выполнения Rational», не могут автоматически синтезировать переменные экземпляра. Более старый код часто включает объявления ivar.

Кроме того, возможная ошибка в Xcode приводит к тому, что синтезированные переменные не появляются в окне отладчика, поэтому включение явного объявления может быть полезным для процесса тестирования.

1

комментарии Джейка несмотря на это, в Naming Properties and Data Types Apple, сообщает, что:

  1. Вы должны «избегать явного объявления переменных экземпляра общественности»; и

  2. Вы должны «префиксные имена переменных экземпляра с помощью подчеркивания (_)».

Таким образом, ваш пример будет выглядеть так:

@interface MyClass : NSObject 
@property (nonatomic,strong) NSString *parent; 
@end 

где Ивар не требуется, чтобы быть явно объявлены, и

@implementation MyClass 
@synthesize parent = _parent; 
// the rest of the implementation 
@end 

где @synthesize заявление не только создать Ивар для вы, но назовите его с лидирующим подчеркиванием, чтобы избежать какой-либо двусмысленности с объявленным свойством.

Для получения дополнительной информации см. Документ Naming Properties and Data Types.

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