关于 Xcode 4.3 中的自动发布

Posted

技术标签:

【中文标题】关于 Xcode 4.3 中的自动发布【英文标题】:about auto release in Xcode 4.3 【发布时间】:2012-01-09 22:47:55 【问题描述】:

您好,我是目标 C 的新手。 在旧版本的 Xcode 中,当我们创建新项目时,IDE 会生成如下所示的 NSAutoreleasePool 对象以允许自动释放对象

int main (int argc, char *argv[]) 
        NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

        [pool drain]; 
        return 0; 

但是在 Xcode 4.3 中,IDE 会生成以下代码

int main (int argc, const char * argv[])



    @autoreleasepool 
          //insert code

    
    return 0; 

使用旧版本 .. 我可以手动释放对象 .. 使用新的 Xcode 4.3 时,我尝试释放对象但释放功能被划掉了......为什么会这样......?

谢谢。

【问题讨论】:

您的项目可能已启用 ARC。如果是这样,您不需要发布任何内容,系统会为您完成。 其他人现在正在承担释放您的对象的责任。你应该感觉更好。还有许多其他新功能,例如 ARC。请参阅您的 xcode 发行说明。 【参考方案1】:

新项目默认启用 ARC(自动引用计数)。在 ARC 中,禁止对 objc 对象进行引用计数操作。

New Project 序列中应该有一个使用手动引用计数或 GC 的选项。

【讨论】:

【参考方案2】:

ARC(自动引用计数)已在您的项目中启用。在 ARC 中,不允许对对象进行引用计数操作(例如释放)。通过“发布”的红线仅表示该方法已弃用或不再需要。系统会为你释放一切。

【讨论】:

非常感谢大家......这是一个非常好的消息......希望C编译器也能做到这一点......:D

以上是关于关于 Xcode 4.3 中的自动发布的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode 4.3 中的键盘上放置一个 UIToolbar

如何强制安装 Xcode 4.3?

发布前xcode自动登录中的Facebook SDK Singleton?

Xcode 6 - 另一个自动布局视图中的自动布局视图

如何自动更新xcode中的帧?

Xcode 8 中的自动调整大小问题