gpt4 book ai didi

iphone - 正确使用 viewDidUnload

转载 作者:行者123 更新时间:2023-12-01 19:21:17 27 4
gpt4 key购买 nike

我知道以前有人问过类似的问题。但是我已经搜索了一段时间了,事情仍然有些困惑。所以这里...

我没有使用 ARC。
如果您有一个带有实例变量和如下属性的 View Controller :

View Controller .h:

@interface ViewController : UIViewController{
NSDictionary *someDict;
}
@property(nonatomic, retain)UIView *someView;
@property(assign)UIView *someOtherView;

View Controller .m:
-(void)viewDidUnload{
self.someView = nil;
[someDict release];
[someOtherView release];
super viewDidUnload];
}

这是实现 viewDidUnload 的正确方法吗?
设置 someDict = nil 似乎是错误的,因为它会泄漏,因此我的猜测是释放。
这同样适用于 someOtherView 因为它没有保留?

我在这里错了吗?感谢您的帮助!

最佳答案

self.someView = nil不会泄漏,因为它等于 [self setSomeView:nil]@property(nonatomic, retain)UIView *someView 的属性合成对自动生成.它有 retain属性,因此在设置新对象时将释放保留的对象。

我相信[someDict release];应该在 dealloc .和[someOtherView release];不应调用,因为它是 assign没有所有权的属性(property)。

更多引用:

  • When should I release objects in -(void)viewDidUnload rather than in -dealloc?
  • Deallocation when iPhone is turned back on from sleep and app is still open
  • 关于iphone - 正确使用 viewDidUnload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10284403/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com