gpt4 book ai didi

iphone - 使用Dealloc和ViewDidUnload释放变量的正确方法

转载 作者:行者123 更新时间:2023-12-01 18:29:45 26 4
gpt4 key购买 nike

我一直在浏览一些教程和一些信息,但是对于释放变量的最佳方法或最佳位置我没有一个直接的答案。

让我们看看这种情况,我有以下两个变量:

@property (nonatomic, strong) IBOutlet UIButton *myButton;
@property (nonatomic, strong) NSString *myString;

...

@synthesize myButton = _myButton, myString = _myString;

这是释放它们的最好方法吗?:
   -(void)viewDidUnload {

self.myButton = nil;
self.myString = nil;
[super viewDidUnload];

}

-(void)dealloc{

[_myButton release];
[_myString release];
[super dealloc];

}

当调用dealloc和调用viewDidUnload时,我了解得足够多,我只想知道这种方式是否正确,以及为什么必须采用这种方式。

谢谢你们

最佳答案

建议不要在init和dealloc中使用属性访问器方法,因为它们可能希望对象中存在某些其他信息。如果您知道自己在做什么,那么在dealloc中使用self.myButton = nil确实没有问题。但是,由于对象被销毁,实际上没有必要将它们设置为nil-除非意外地从dealloc中运行了一些代码(如我上面提到的访问器方法)。

在viewDidUnload中,您希望将成员设置为nil而不是仅释放它们,因为您的对象将继续存在并且不希望访问悬空指针。

因此,您的示例应该是最佳性能和最安全的编程方式。

关于iphone - 使用Dealloc和ViewDidUnload释放变量的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10296150/

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