@ property / @ synthesize语法的概要

时间:2011-06-23 13:48:59

标签: objective-c properties

我同意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 个答案:

答案 0 :(得分:3)

(4)不正确。即使在对象中,如果没有对象指针,也无法访问属性。所以你可以说:

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

但你不能只说itsWindow = nil

语句1-3都可以,但您通常希望直接在init和dealloc方法中访问ivars,并在其他地方使用属性访问器。