gpt4 book ai didi

cocoa-touch - 什么时候自动释放实际上会导致 Cocoa Touch 中的释放?

转载 作者:行者123 更新时间:2023-12-04 01:19:45 28 4
gpt4 key购买 nike

我知道您需要小心 autorelease在 iOS 上。我有一个方法返回一个对象它 alloc s 这是调用者需要的,所以在这种情况下——据我所知——我需要发送 autorelease到被调用者中的对象,然后再返回。

这很好,但是一旦控制权返回到手机(即在我的按钮点击处理完成后),似乎自动释放池被释放了。我怀疑这是应该的,但我想知道这种情况的最佳做法是什么。

我已经求助于发送 retain来自调用者的消息,以便对象不会被释放,然后在 dealloc 中显式释放它.

这是最好的方法吗?

最佳答案

自动释放池通常在每次运行循环迭代后释放。粗略地说,每个 Cocoa 和 Cocoa Touch 应用程序的结构如下:

Get the next message out of the queue
Create an autorelease pool
Dispatch the message (this is where your application does its work)
Drain the autorelease pool

您所描述的是预期的行为。如果您想保留一个对象的时间比这更长,则需要明确保留它。

关于cocoa-touch - 什么时候自动释放实际上会导致 Cocoa Touch 中的释放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/673372/

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