0 memory-management properties objective-c retain
例如:
@interface DataMode : NSObject {
NSString * name;
}
@property (nonatomic, retain) NSString * name;
@end
Run Code Online (Sandbox Code Playgroud)
将编译器自动添加[name release]
到-dealloc
?
- (void) dealloc
{
[name release]; // if we don't add it , will the compiler add "[name release]"???
[super release];
}
Run Code Online (Sandbox Code Playgroud)
小智 5
这取决于您使用的内存管理方案:
使用垃圾收集,您不需要释放支持声明的属性的实例变量 - 垃圾收集器会自动执行该操作.事实上,-dealloc
即使您需要在解除分配时执行其他任务,也根本不会定义方法:垃圾收集器发送-finalize
而不是-dealloc
;
使用自动引用计数(ARC),您不会定义该-dealloc
方法.ARC将自动释放支持声明的属性的实例变量.-dealloc
如果需要,您可以定义一种方法来执行其他内务处理任务,但您不会发送[super dealloc]
;
使用手动内存管理,您需要手动释放支持声明的属性然后发送的实例变量[super dealloc]
.
归档时间: |
|
查看次数: |
199 次 |
最近记录: |