Zhe*_*hen 4 objective-c dealloc ios
如果创建了UIviewController子类,则会自动为您创建方法"dealloc".
- (void)dealloc{}
Run Code Online (Sandbox Code Playgroud)
但是,当我创建一个Objective-C类时,该方法不会自动创建.是否有必要添加dealloc方法以便我可以在类中释放属性?特别是如果我将它们保留在头文件中?
例如,在我的Objective-C类头文件中
@interface ClassA : NSObject
{
NSString *someProperty;
UINavigationController *navcon;
}
@property (nonatomic, retain) NSString *someProperty;
@property (nonatomic, retain) UINavigationController *navcon;
Run Code Online (Sandbox Code Playgroud)
我是否需要手动创建dealloc方法以释放属性,如下所示?
-(void)dealloc
{
[someProperty release];
[navcon release];
}
Run Code Online (Sandbox Code Playgroud)
是的,你必须.
dealloc在你的对象被彻底销毁之前调用它,并将其内存返回给操作系统.如果它保留在其他对象上,例如在您的情况下,那些对象也必须被释放.
这就是为什么你需要覆盖dealloc和释放你持有的任何资源.
某些Xcode模板可能会或可能不会为您提供示例实现的事实dealloc是无关紧要的.
| 归档时间: |
|
| 查看次数: |
1773 次 |
| 最近记录: |