属性和综合:在这段代码中,没有“自我”?

时间:2011-07-24 11:32:44

标签: objective-c properties self

我有一个简单的问题:
如果我们不在这里使用项目中另一个类的dataController属性,我们真的不需要使用“@property”并进行综合,我们可以用dataController = controller做一个简单的“=”操作,就像在第二块代码中? :

DataController *controller = [[DataController alloc] init];  
self.dataController = controller;  
[controller release];  
rootViewController.dataController = dataController;  

第二个:

DataController *controller = [[DataController alloc] init];   
dataController = controller;  

因此,如果我们不需要课外的财产,我们可以这样做吗? 感谢

3 个答案:

答案 0 :(得分:3)

如果dataController是保留属性,那你是对的。

如果您只是使用过一次,那么购买房产并不会有什么好处。如果经常更改其值(即分配不同的DataController),那么即使是私有属性也只是为了简化内存管理。

答案 1 :(得分:2)

如果dataController不会在任何其他类中使用,那么您不需要合成它。然后是的,你可以在那个类中创建它。

(当然,如果你的rootViewController中的dataController也需要引用它,那么你也需要处理它)

答案 2 :(得分:1)

是的,第二个例子工作正常,前提是dataController被声明为iVar,而不仅仅是使用它的方法的局部变量 - 但你可能知道这一点。

在这两个示例中,您当然需要在dealloc方法中释放存储的值。