2012-02-29 52 views
0

我無法找到有關該問題的答案。我有一個與老學校MRC合作的項目,並且更喜歡使用這種內存管理風格,但現在一些新的框架最初使用ARC創建。我可以使用任何轉換方式將這些框架包含在我的項目中,或者我可以在這種情況下做什麼,除了重新制作整個項目?是否可以將項目與ARC轉換爲MRC?

+0

看看這個問題,在每個文件的基礎上設置ARC:http://stackoverflow.com/questions/6646052/how-can -i-disable-arc-for-one-file-in-a-project – gregheo 2012-02-29 18:43:11

回答

1

您可以使用ARC(MRC)(動態或靜態)庫一個MRC(ARC)應用程序。如果您想將ARC(MRC)框架的包含到MRC(ARC)中,則需要根據每個文件設置進行調整,並且IIRC報告表明儘管它可以正常工作,但您可能會得到Clang報告的非錯誤。

[注意:GC使圖片複雜化,例如,你不能使用來自MRC/ARC應用程序的GC庫。]

+0

好的,即使框架沒有_weak修飾符,爲老的iOS轉換完整的mrc兼容性也沒有什麼區別嗎?因爲我需要新版本的os的新框架。 – stworks 2012-03-01 13:13:22

+0

不同的OS版本混合使問題複雜化。如果你有一個框架設計爲使用10.7以下的ARC,並且它不使用弱引用,那麼如果你在10.7以下編譯它,你可以在10.6以下使用它(因此在10.6以下的MRC應用程序中)。如果它確實使用弱引用,那麼它*仍然可以正常工作,但確定您需要對框架進行代碼審查 - 在引用對象消失時,在10.7弱引用自動null下,在10.6下它們不會。如果這依賴,那麼框架將在10.6以下發生故障(但在技術上仍然「可用」)。 – CRD 2012-03-01 17:23:00

+0

Thx爲答案。說實話,我忘了** ios **標籤,我的問題是關於該操作系統。 – stworks 2012-03-02 13:17:09

1

你可以編譯你的弧形源爲靜態庫......這是應該做的一種方式,另一種可能性是使每個文件的基礎ARC