Свойства объявлены как переменные экземпляра тоже? - PullRequest
4 голосов
/ 08 августа 2011

Этот код работает:

    @interface StringStuff : NSObject {

    }
    @property (nonatomic, retain) NSString *String1;
    @property (nonatomic, retain) NSString *String2;

    - (NSString *) doSomethingWithStrings;

    @end

Но я часто вижу:

        @interface StringStuff : NSObject {
             NSString *String1;
             NSSTring *String2;    
        }
        @property (nonatomic, retain) NSString *String1;
        @property (nonatomic, retain) NSString *String2;

        - (NSString *) doSomethingWithStrings;

        @end

Есть ли причина, по которой свойства часто объявляются как переменные экземпляра? Это просто считается хорошей формой?

1 Ответ

6 голосов
/ 08 августа 2011

Наследие;раньше (и все еще на 32-битном целевом коде Mac OS X) требовались объявления ivar.Это больше не верно для iOS, симулятора и 64-битной OS X.

Обратите внимание, что @synthesize iVar = iVar_; является общим для предотвращения случайного прямого доступа, где действительно требуется self.iVar.

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