Dan*_*gan 3 iphone cocoa-touch memory-management objective-c
声明是:
//Pass the copy onto the child controller
self.childController.theFoodFacilityCopy = [self.theFoodFacility copy];
Run Code Online (Sandbox Code Playgroud)
我的财产设定为:
@property (nonatomic, retain) FoodFacility *theFoodFacilityCopy;
Run Code Online (Sandbox Code Playgroud)
我认为我有泄漏的原因是因为copy
保留了值,然后我的点语法属性也保留了该值.双重保留.
编写上述陈述的正确方法是什么?
是的,你确实有泄漏.
SomeClass *someObj = [self.theFoodFacility copy];
self.childController.theFoodFacilityCopy = someObj;
[someObj release];
Run Code Online (Sandbox Code Playgroud)
这也反映了初始化对象的推荐方法:
SomeClass *someObj = [[SomeClass alloc] init];
self.someProperty = someObj;
[someObj release];
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,第一行返回一个保留计数为1的对象,之后您将对其进行相同的处理.
归档时间: |
|
查看次数: |
253 次 |
最近记录: |