4

根據這個蘋果page,我讀過,當在POSIX線程上與Cocoa交互時,我應該創建一個NSAutoreleasePoolPOSIX回調函數和NSAutoreleasePool與ARC

如果您正在可可如果創建了一個基金會,只是應用程序調用的應用程序套件的主要 線程例如之外,或者如果你 分離線程,你需要創建自己的自動釋放池。

不幸的是,在ARC中不允許使用NSAutoreleasePool

我應該怎麼做才能保證始終有一個池可用於任何自動發佈的ARC代碼?

謝謝!

回答

5

使用@autoreleasepool

@autoreleasepool 
{ 
    // make Cocoa calls here 
} 

這允許編譯器正確推理跨池的邊界,這是ARC的要求對象的生命週期。 (這就是爲什麼你不能使用NSAutoreleasePool。)作爲獎勵,它也更快。