2011-09-09 43 views
2

我必須將簡單的ARC代碼轉換爲非ARC。雖然這是相對直接的,我錯過了一個實例變量賦值self.var = xxx,而是我寫了var = xxx。不同的內存管理ARC /沒有ARC

在ARC版本中,它沒有造成任何麻煩 - 在非ARC版本中,它肯定會導致崩潰。

這是否意味着在沒有自我的情況下在ARC中分配實例變量實際上是可以的。所以他們得到保留?

謝謝!

PS什麼是最好的來源,以瞭解如何在ARC程序,所以一個避免abvious錯誤 - 到目前爲止,我沒有發現,在所有的任何問題,但我越來越緊張,我可能錯過了一些東西

+0

是的,我明白 - 不過這不是關於iOS5的,但ARC - 和ARC已經由LLVM 3.0發佈....所以我認爲可以問 – user387184

+0

我的不好。不知道:-)我會刪除我的評論。 – 0x8badf00d

+0

不是NDA下的ARC實施細節? – Macmade

回答

1

不這意味着在沒有自我的情況下在ARC中分配實例變量實際上是可以的。所以他們得到保留?

是的,那種。

id obj_; 

與此相同。

id __strong obj_; 

obj_對指定對象有很強的參考價值。在伊娃的所有者對象被解除分配之前,分配的對象不會被解除分配。

請參閱LLVM document或蘋果的ARC參考資料仍在NDA之下。

+0

這是個好消息!謝謝 – user387184

0

enter image description here

enter image description here

自動引用計數禁止「的dealloc」

我分享了一招,使新的iOS5 SDK庫較早版本的編譯明確的消息發送。

點擊項目。

點擊目標。

選擇構建階段選項卡。

選擇您想要關閉ARC的多個文件。

按ENTER鍵/點擊Enter鍵

類型「-fno-objc弧」(不包括引號,如圖片所示)