关于 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