iOS5之回不去了 – 如何使用Reference Counting機制

在上週Apple正式釋出了iOS 5的版本,
同一時間也釋出了Xcode 4.2的版本,
結果當我憑著自己身為Apple iOS Developer,
可以在Xcode中任意downgrade到任何一個版本的優勢,
想說先來嘗鮮一下iOS5,晚一點再回復成iOS4,
結果慘事發生了,因為當我要回復時居然怎麼都回不去了。

沒錯!就是回不去了!!!!
Oh! my god! 我親愛的iOS4居然回不去了 *崩潰*
那以後我是要怎麼測試iOS4啊,臭Apple你還真是狠啊……..
所以如果手上還沒升級iOS5的開發者請自行考慮是否要升級iOS5。

所以這篇要教大家如何要非法的方式downgrade?
當然不是啊…..  Orz

我倒是要來講講如何在Xcode 4.2中可以使用Reference Counting的機制,
在xcode 4.2中新增了Automatic Reference Counting的機制,
可能會造成之前所寫的retain, release這些指令都不能用,
而這篇就是要教大家如何在Xcode 4.2中關閉Automatic Reference Counting。

首先稍微講一下Automatic Reference Counting這個機制,
網路上面有很多文章是說他是iOS5所提供的自動資源回收機制,
但是由原廠的文件上可不是這麼說的。

原廠文件中有提到,Automatic Reference Counting是一項Compile的技術,
會在Compile時檢查哪些東西需要進行資源回收,
而幫你加上release或是retain的機制,
好!那問題來了,
居然這麼方便的東西為何你還需要自己來進行處理資源回收,
原因很簡單,因為既然是由Compliler自動做出來的東西,
你確定他真的知道你在想什麼嗎?
所以我針對何時需要自行管理記憶體提出了兩項建議:

  1. 當你對記憶體管理的觀念非常清楚,並且確認可以進行完全的回收
  2. 當你的app需要更高的執行效能時

否則對於一個初階或是不想深入的開發者,
我倒是蠻建議使用xcode 4.2之後的Automatic Reference Counting機制。

好,廢話不多說,
我們來看看如何關閉Automatic Reference Counting的機制吧,
方法總共有兩種:

1. 新開專案
若你的專案是新開的,
那麼只要在開專案時反勾選”Use Automatic Reference Counting”的選項即可,
這個專案就可以自行完成記憶體管理的動作。

 

2.舊有專案
若是專案之前已經開過或是忘記關掉”Use Automatic Reference Counting”,
那麼可以到”Build Settings”中進行調整。

 

找到”Apple LLVM compiler 3.0 – Language”的項目下,
將CLANG_ENABLE_OBJ_ARC設為NO,
並將GCC_ENABLE_OBJC_GC設為Unsupported,
這樣就能關閉Compiler中的Automatic Reference Counting處理。

恭喜各位,又解決了一個惱人的問題,
那麼下次我會再繼續抽空分享Android的教學,
前些日子因為忙到累倒所以Blog休息了一陣子,
接下來會再繼續開張營業下去。

本篇發表於 Objective C 與標籤於 anistar固定網址書籤。
本文引用:
文章內容為ANISTAR BLOG所有,引用分享請以鏈結形式註明出處與原始作者。

關於 anistar

現任:台灣區 Yahoo! 專長: Objective C、iOS SDK、Android SDK、Flex 4、RIA、ActrionScript 3、HTML5、CSS3、JQuery、JQuery Mobile、C++、PHP、MySQL...等整合運用。 著作:《Run!PC雜誌》專欄作家、《CADesigner雜誌》專欄作家、《Flash CS3 Professional ActionScript 3.0 打造互動設計力與美》、《新一代互動體驗Flex+AIR程式開發》。 認證:Macromedia Certified Instructor in ColdFusion    Adobe Certified Expert in Photoshop    Adobe Certified Instructor in Flex

4 則迴響於《iOS5之回不去了 – 如何使用Reference Counting機制

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *