краткий обзор @ property / @ синтезирует синтаксис - PullRequest
2 голосов
/ 23 июня 2011

Я согласен с оценкой, что документы Apple по @property и @synthesize очень хорошие. Кроме того, я прочитал отличные учебники по stackoverflow.

Я хотел бы попросить кого-нибудь подтвердить или исправить следующее. Учитывая наличие:

@property UIWindow *itsWindow;      // .h file
@synthesize itsWindow = window_;    // .m file

и с учетом этих утверждений:

1) self.itsWindow = nil;
2) [self setItsWindow:nil];
3) window_ = nil;
4) itsWindow = nil;

(1) - это сообщение [self itsWindow], тогда как (3) и (4) - фактические параметры класса.

Если приведенное выше верно, то любое из 4 операторов будет работать в методе класса -init.

1 Ответ

3 голосов
/ 23 июня 2011

(4) неверно.Вы не можете получить доступ к свойству, даже внутри объекта, без указателя объекта.Таким образом, вы можете сказать:

  • self.itsWindow
  • [self itsWindow]
  • self.itsWindow = nil
  • aDifferentObject.itsWindow = nil
  • [aDifferentObject setItsWindow:nil]

но вы не можете просто сказать itsWindow = nil.

С утверждениями 1-3 все в порядке, но вы обычно хотите получить доступ к ivars напрямую в методах init и deallocи используйте средства доступа к свойствам везде.

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