18

これを整理しようとしています。 ARCを使用していないファイルや静的なlibでARCプロジェクトを処理する方法を知っています。たとえば、コンパイラフラグ-fno-objc-arcを使用します。NON-ARCプロジェクトでARC静的ライブラリを使用する

しかし、ARCを使用していないプロジェクトがあり、ARCでコンパイルされた静的ライブラリを含める場合はどうすればよいですか?私がプロジェクトをビルドするたびに、それは "強く、__unsafe_unretained、..."のようなものを認識しないと私に伝えています。

+0

興味があるだけ、なぜあなたは自分のプロジェクトのためにARCをオンにすると、すべてのファイルに対してコンパイラフラグを追加することはできませんか? ARCを無効にする必要がある特定の理由はありますか? –

+0

プロジェクトはもう少し前にビルドされ、他の多くのサードパーティの非アークフレームワークも使用されています。したがって、すべてのファイルを調べてコンパイラフラグを設定するのは面倒なプロセスです。より良い/よりクリーンなソリューションを望んでいました。だから私は300以上のソースファイルにコンパイラフラグを記入する必要はありません: – Yannick

+0

あなたは、ARCマイグレータが基本的に "フラグを追加する"すべてのファイルを選択できることを知っていますか?少なくともXcode 4.2では、すべてのファイルを手動で実行する必要はありません。 –

答えて

8

正常に動作するはずです - この非ARCプロジェクトではなく最新のAppleコンパイラを使用していますか?

+1

もし私がそれを行うなら、私はプロジェクトからすべての保持/解放の呼び出しを取り除く必要があり、基本的にARCにすべてを開始します。それに古いレガシーコードといくつかの構造があるので、私はそれをしたくありません。 – Yannick

+1

あなたはそうではありません - ARCは余分なコンパイラ機能です。あなたがしたくない場合は、それを使う必要はありません。最新のApple LLVMを使用しても、ARCを使用する必要はありません。新しいプロジェクトを作成しているときにARCを使用するかどうかを選択することもできます。それを使用することはあなたの古いコードをARCに変換しなければならないという意味ではありません。違いは、それらの新しいキーワードなどをすべて理解することです。 – shw

+1

あなたは正しいです。私はARC'ingを開始しなければならないと思ったが、彼はちょうどいくつかの欠けている__bridgedのキャストといくつかの他のエラーで不平を言っていた!ありがとう! – Yannick

16

shwの答えに追加する。 -fobjc-arcをビルド段階のコンパイラフラグにARCファイルに追加して、非ARCプロジェクトに対して正しくコンパイルできるようにします。

詳細情報here

+0

単純に素晴らしい... –

関連する問題