Чем отличается переменная экземпляра от свойства? - PullRequest
3 голосов
/ 29 ноября 2010

Я видел много кодов, которые делают это:

@interface Test0 : NSObject {
        @private int iVar;
}
@property (readwrite,assign) int iVar;
@end

и некоторые другие коды:

@interface Test0 : NSObject {
}
@property (readwrite,assign) int iVar;
@end

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

Мои вопросы: нужно ли объявлять переменную экземпляра @private int iVar;?В чем преимущество этого?Какова наилучшая практика объявления переменных экземпляра в зависимости от свойства?компилятор связывает переменную экземпляра со свойством?

Заранее спасибо.

1 Ответ

5 голосов
/ 29 ноября 2010

Современные среды выполнения Objective C и компиляторы, которые используют не хрупкие базовые классы (IIRC, 64-разрядная среда выполнения в OS X и iOS 4.0 и более поздние среды выполнения), позволяют опустить переменную экземпляра. Ваш первый пример необходим для более старых сред выполнения, позже - все, что требуется в современных средах исполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...