gpt4 book ai didi

ios - 手动引用计数和 AutoRelease

转载 作者:行者123 更新时间:2023-11-28 19:44:47 24 4
gpt4 key购买 nike

在手动内存管理中,你会在哪些场景下进行自动释放

我想做好充分的准备,因为我即将进行一个不使用 ARC 的项目

最佳答案

当您需要从方法返回一个对象并同时放弃所有权时,您通常会使用 autorelease:返回时调用方(而不是创建方法)应该拥有该对象。

如果您只是在返回对象之前放弃所有权(使用 release),它会立即被释放并且调用方无法使用它。如果您不调用 release,对象从被调用函数(实例化它)中的引用计数为 +1,在调用方声明所有权后也没有进一步释放的机会。

因此,autorelease 就像一个“延迟释放”:对象在稍后时间(但不是在返回它的函数返回之前)发送一个释放方法。


附录:

另一种方法是返回约定引用计数为 1 的对象,并依靠调用方在完成后释放它。

这通过为这些方法采用预先建立的命名模式而变得明确:在 Cocoa 中,它们通常包含单词“alloc”、“new”、“copy”或“mutalbeCopy”。

来源:Apple's documentation .

关于ios - 手动引用计数和 AutoRelease,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32758894/

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