ios - 在 dealloc 中释放保留属性?

标签 ios objective-c memory-management retain

这个问题在这里已经有了答案:





Why do I have to call super -dealloc last, and not first?

(6 个回答)


8年前关闭。




我有一个在 .h 文件中定义为属性的类:

@property (retain) NSString *fontName;

在 .m 文件中,我释放属性:
-(void)dealloc {
    [super dealloc];
    [_fontName release];
}

现在我偶尔会在 [_fontName release] 上收到 EXC_BAD_ACCESS 错误。这种情况非常罕见,我不确定如何调试它。释放@property(保留)是否正确?还是 [super dealloc] 已经这样做了?

最佳答案

执行super dealloc后:

-(void)dealloc {
    [_fontName release];
    [super dealloc];
}

简而言之,在杀死自己之前杀死你的 child 。

关于ios - 在 dealloc 中释放保留属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22403104/

相关文章:

ios - totalBytesExpectedToWrite 在 NSURLSessionDownloadTask 中为 -1

iphone - UIImage 只拉伸(stretch)一部分

c# - .net 中有哪些不同的堆?

c++ - 在 C++ 中顺序插入/读取/删除最快的数据结构是什么?

ios - Interface Builder 文件中的未知类信息

objective-c - 内存泄漏警告

ios - NSOperationQueue在完成 block 成功时添加新操作

iphone - 在多个 View 之间使用 UINavigationController 的背景图像

c - malloc 之前的 (int *) 是什么意思?

ios - 我如何在 UIAlertController 中获取 textField 的值?