我認爲標題很好地解釋了我的問題,目前我正在爲我的個人需求開發一個小框架,並考慮使用ARC構建它(如果可能的話),並將其用於舊項目在ARC之前建立?我可以構建一個ARC框架並將其用於非ARC項目嗎?
8
A
回答
7
是的,有一點需要注意:如果您有iOS 4.x作爲部署目標,則需要補充庫來處理舊版運行庫上的ARC編譯代碼。對於使用ARC構建的應用程序,這與應用程序一起打包。如果您在非ARC應用程序中使用ARC編譯的庫,則不包括此內容。
通過將-fobjc-arc
添加到應用程序的其他鏈接器標誌中,您可以手動將此庫鏈接到非ARC應用程序中,以避免舊操作系統版本出現運行時問題。
請參閱this Apple Developer Forums thread瞭解更多關於此的討論。
1
應該沒問題。該庫已經編譯完成,因此ARC/NonARC不再有問題了。
+1
舊的運行時和啓用ARC的靜態庫存在一個潛在的問題,我在我的答案中詳細說明了這一點。 –
2
您可以鏈接Apple提供的粘貼庫(如Brad在上面的答案中所述)。但是,__weak變量限定符與4.3以下的操作系統不兼容(如此處所述:在sudo的註釋中提及iOS 5 Best Practice (Release/retain?))。
相關問題
- 1. 我可以在ARC構建應用程序中使用非ARC構建框架嗎?
- 2. 將非ARC項目轉換爲ARC
- 3. 將非ARC項目切換爲ARC
- 4. 在非ARC項目中使用ARC庫
- 5. 是否可以組合非ARC和ARC項目代碼?
- 6. 將非ARC轉換爲ARC項目而不重新創建它?
- 7. 將ARC轉換爲非ARC
- 8. 將非ARC轉換爲ARC
- 9. 如何弱化非ARC項目中的ARC項目
- 10. 框架iOS ARC
- 11. 如何將ARC項目轉換爲非ARC?
- 12. 將非ARC文件轉化爲Xcode 4中的ARC項目
- 13. GC應用程序可以鏈接到ARC框架嗎?
- 14. 如何在非ARC項目中啓用ARC文件?
- 15. ARC和非ARC框架 - iOS - 適當的釋放不工作?
- 16. ARC與非ARC框架之間的內存管理
- 17. 我可以將此項目視爲一個框架嗎?
- 18. 在非ARC項目中使用SBJson
- 19. 如何在iOS中啓用ARC的項目中包含非ARC遠景項目
- 20. 爲什麼XCode 8.2.1將ARC規則應用於非ARC文件?
- 21. Unity iOS開發構建始終產生非ARC Xcode項目
- 22. 我該如何更改舊項目,以便可以使用ARC?
- 23. 如何在具有C結構的項目中將非ARC轉換爲ARC項目?
- 24. 在非ARC項目中包含ARC標題
- 25. ARC與非ARC removeLastObject方法
- 26. ARC,非ARC和繼承
- 27. ASIHTTPRequest和其他框架與ARC
- 28. Zombie Objects對於混合ARC和非ARC類的項目的奇怪行爲:EXC_BAD_ACCESS
- 29. 非ARC項目:NSMutableArray,NSString內存泄漏
- 30. 用於ARC項目中的NSTextView的IBOutlet
我剛剛在一個項目中嘗試過,並沒有幫助,你有機會看看嗎? http://stackoverflow.com/questions/8375233/ld-duplicate-symbol-objc-retainedobject-on-ios-4-3-but-not-on-ios-5-0 –
爲什麼會有任何運行時問題? ARC不是在編譯時進行的? –
@ZakyGerman - ARC不僅僅是在正確的位置注入'-retain'和'-release',而且它引入了新的'@ autoreleasepool'之類的東西,所以它需要一些運行時幫助。這是內置於iOS 5.0,但4.x需要這個向後兼容性庫。 –