msh*_*ban 1 iphone objective-c
我想知道分配一个具有保留属性的对象,类似于:
RootViewController *viewController;
@property (nonatomic, retain) RootViewController *viewController;
@implementation ...
viewController = [[RootViewController alloc] init];
Run Code Online (Sandbox Code Playgroud)
因为做这样的事情是不对的:
self.viewController = [[RootViewController alloc] init];
Run Code Online (Sandbox Code Playgroud)
因为这会使对象保留计数增加2,你必须释放你的对象两次,其中一个是dealloc方法.
如果我正在分配我的对象,那么使用assign属性会更好吗?或何时需要保留我使用alloc方法分配的对象.
我对这个问题非常困惑,所以请你向我举例说明这种情况是如何有效的.
非常感谢,我真的很感激.
问候,
当您将对象传递到您希望控制它的其他位置时,它的标准做法autorelease是:
self.viewController = [[[RootViewController alloc] init] autorelease];
Run Code Online (Sandbox Code Playgroud)
或者你可以release在设置变量后自己动手:
RootViewController *controller=[[RootViewController alloc] init];
self.viewController = controller;
[controller release];
Run Code Online (Sandbox Code Playgroud)
你的第一个例子不一定是不好的做法,虽然肯定有程序员相信它.这在很大程度上取决于背景.
assign在这种情况下使用可能是错误的.
| 归档时间: |
|
| 查看次数: |
241 次 |
| 最近记录: |