2009-04-24 30 views

回答

1

无与null相同,但是对于对象。它意味着没有对象。

点语法与调用[self setMyOutletProperty:nil]相同。

所以你只是从一些属性中删除一个对象。意义取决于你正在谈论的财产。

7

1.如果属性类型是 “复制” 或 “保持”,然后

self.myOutletProperty =零;与[myOutletProperty发布]相同;

2.如果属性类型是 “分配”,然后

self.myOutletProperty =零;什么都不做

12

你应该知道,那个属性只是语法糖。

例如:

@property(nonatomic, retain) NSString *myString; 

将转换为

- (NSString*)myString { 
    return myString; 
} 

- (void)setMyString:(NSString*)newString { 
    if (myString != newString) { 
     [myString release]; 
     myString = [newString retain]; 
    } 
} 

所以如果你不是这样@财产申报,但实际上释放

2

有一点要记住的是,即使尽管将你的属性设置为零可以正常工作,但我建议在你的dealloc方法中调用[object release]。如果您编写自己的setter方法来引用另一个ivar(可能已经发布),或者您在其他地方在该属性上注册了KVO通知,那么这种方法就很安全。