2012-01-09 83 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。