gpt4 book ai didi

iphone - 保留 'self' 的不好做法?

转载 作者:行者123 更新时间:2023-12-03 16:07:31 27 4
gpt4 key购买 nike

我有一个简单的疑问,希望有人能解答...保留 self 是不好的做法吗?

我有一个想要创建的服务器请求对象。我希望能够按以下方式使用它:

ARequest *request = [ARequest request: someParam];
request.delegate = self;
[request begin];

为了使对象在自动释放池耗尽后不会自毁,我想我需要在它的 init 方法中调用保留,然后在收到、处理并传递服务器响应后释放它代表。

但是,这种方法在我脑海中敲响了警钟。更好的方法吗?

最佳答案

保留self没有任何问题,只要您根据正常的内存管理协议(protocol)在某个明确定义的点释放它即可。如果一个对象要求自身存在直到满足某些条件,则它应该对此负责,就像它对其需要继续存在的任何其他对象所做的那样。

引入无关的管理对象或出于迷信原因将责任强加给对象的所有者将是这里真正的反模式。

(垃圾收集代码中的等效方法是让对象在结果待处理时将其自身排除在垃圾收集之外,或者如果您不喜欢这个想法,则通过某种类型的集合来根它。)

关于iphone - 保留 'self' 的不好做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3953413/

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