私は現在、私の個人的なニーズのための小さなフレームワークに取り組んでいる、タイトルはかなりよく私の質問を説明すると思うし、ARCでそれを構築することについて考え(ザッツ可能であればすべてで?)、とした古いプロジェクトで使用しますARCの前に建てられた?私はARCフレームワークを構築し、それを非ARCプロジェクトで使用できますか?
答えて
はい、。 ARCを使用して構築されたアプリケーションの場合、これはアプリケーションとともにパッケージ化されています。これは、非ARCアプリケーションでARCコンパイルされたライブラリを使用している場合は含まれません。
このライブラリを非ARCアプリケーションに手動でリンクすると、古いOSバージョンで実行時の問題が発生するのを避けることができます。アプリケーションのOther Linker Flagsに-fobjc-arc
を追加します。
はこの上でいくつかのより多くの議論のためのthis Apple Developer Forums threadを参照してください。
大丈夫でしょうか。ライブラリは既にコンパイルされているので、ARC/NonARCはそれ以上重要ではありません。あなたはデプロイメント・ターゲットとしてのiOS 4.xを持っている場合は、補足的なライブラリが古いランタイム上のARC-コンパイルされたコードに対処する必要がある:1つの注意点が
古いランタイムとARCが有効になっている静的ライブラリに潜在的な問題が1つあります。 –
(ブラッドは、上記の彼の答えで述べたように)あなたは、アップルが提供するグルー・ライブラリをリンクすることができます。しかし、__weak変数修飾子は4.3以下のオペレーティングシステムと互換性がありません(sudoのコメントのiOS 5 Best Practice (Release/retain?))。
- 1. ARCビルドアプリケーションで非ARCビルドフレームワークを使用できますか?
- 2. 非ARCプロジェクトをARCに変換する
- 3. ARC対応プロジェクトで非ARCコードを使用する - Facebookを追加する
- 4. 非ARC互換プロジェクトでARC互換ファイルを使用する方法
- 5. NON-ARCプロジェクトでARC静的ライブラリを使用する
- 6. dispatch_asyncと(非ARC)非ARCアプリで
- 7. 非ARCをARCプロジェクトに変換せずに変換しますか?
- 8. 非ARCプロジェクト:NSMutableArray、NSStringメモリリーク
- 9. Xcode 4のARCプロジェクトに非ARCファイルをサブクラス化
- 10. 非ARCプロジェクトのファイルに対してARCを有効にするにはどうすればよいですか?
- 11. ARCプロジェクトを非ARCに変換するにはどうすればよいですか?
- 12. ARCアプリケーションに非ARCライブラリを含める?
- 13. Xcode 4.4、iOS 4.2用ARCでアプリケーションを構築
- 14. GCアプリケーションをARCフレームワークにリンクできますか?
- 15. 非ARCプロジェクトで使用すると、TWRequestが漏れて表示される
- 16. ARC、非ARC、および継承
- 17. XCodeを使用して非ARCプロジェクトをObjective-C ARCに変換するときにClangが終了コード254で失敗しました
- 18. 新しいプロジェクトでARCを使用している間にプロジェクト全体をARCなしで維持する方法はありますか
- 19. ARCプロジェクトのTWRequestリーク
- 20. 新しいプロジェクトにARCを使用するのは時期尚早ですか?
- 21. XcodeプロジェクトでARCを無効にする
- 22. ARCかどうかARC iOS5
- 23. そうでない場合はフラグが立てられた場合でも、XcodeのはまだARCプロジェクトに非ARCファイルに問題がある
- 24. EXC_BAD_ACCESS ARCでデリゲートを使用するNSXMLParser
- 25. ARC以外のプロジェクトにARCヘッダーを含める
- 26. マニュアルはARC前にARC
- 27. ARCを使用してObjective Cで文字列値を割り当てる方法は? ARCを使用して
- 28. アナライザはARCで動作しますか?
- 29. フレームワークのARCを無効にする
- 30. Objective-Cで始まる:ARCにするかARCにしないのですか?
私は実際にプロジェクトでこれを試してみましたが、それは助けにはなりませんでした。 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ではこの後方互換性ライブラリが必要です。 –