首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用@ autorelease and并发送自动发布消息

使用@ autorelease and并发送自动发布消息
EN

Stack Overflow用户
提问于 2012-12-08 16:11:15
回答 1查看 162关注 0票数 0

我正在学习objective-c,我想澄清一件事:当我使用autorelease after时,我应该在使用test object之后发送一个自动释放消息吗?

代码语言:javascript
复制
for (int i = 0; i < 10; ++i)
{
    @autoreleasepool {
        TestClass* tc1 = [[TestClass alloc] init];
        //....... do some stuff with tc1
        [tc1 autorelease];
    }
}
EN

回答 1

Stack Overflow用户

发布于 2012-12-08 16:20:43

当我使用自动释放池时,我应该在使用测试对象后发送自动释放消息吗

它们之间没有任何关联。

你应该做什么取决于你想做什么,以及你是否在使用自动引用计数。

如果你使用的是ARC (我认为不是这种情况,因为你发送了一个autorelease消息),那么在简单的情况下,你根本不用担心释放对象。(如果您必须对更复杂的模型使用高级内存管理,那么ARC甚至比MRC更复杂,但不管怎样……)

如果你不使用ARC,有两个选择。autorelease允许在最内层范围的自动释放池的末尾释放对象。因此,在您提供的示例中,这样做是可以的。

然而,自动释放的主要目的是在从方法/函数返回对象时释放所有权,通常,当不再需要分配初始化的对象时,您希望显式地向该对象发送release消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13775725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档