2012-01-09 69 views
1

嗨自动释放我新的目标C. 在旧版本的Xcode,当我们创建新项目的IDE生成NSAutoreleasePool对象像下面为允许自动释放对象约在Xcode 4.3

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,当我试图释放对象,但解除功能划掉......为什么是......?

谢谢。

+1

您的项目可能已启用ARC。如果是这样,你不需要发布任何东西,系统会为你做。 – 2012-01-09 22:52:53

+1

别人现在正在释放你的对象的负担。你应该感觉更好。还有很多其他新功能,比如ARC。查看您的xcode发行说明。 – 2012-01-09 22:59:58

回答

1

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

+0

非常感谢大家......这是一个非常好的消息..希望C编译器也能做到这一点..:D – user1139747 2012-01-10 00:05:55

3

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

新项目序列中应该有一个选项来使用手动引用计数或GC。