2011-12-26 15 views
6

私のプロジェクトではARC(Automatic Reference Counter)を使用していますので、ここでautorelease文を使用した4つのクラスを持つASIHTTPRequestライブラリをインポートしようとしますファイルはARC機能をサポートしていません

[self setAccessLock:[[[NSRecursiveLock alloc] init] autorelease]]; 

私が得たエラー:

ARC forbids explicit message send of autorelease 

私は何をすべきこの問題を解決する一例です。

答えて

14

私は解決策を得ました。私は、ARCをサポートしていない各ファイルのコンパイラフラグに正しいフラグを追加する必要がありました。私にとっては、Xcode 4.2を使用しているので、target -> Build Phases -> Compile Sourcesの下で、ARC機能を無効にしたいファイルをダブルクリックし、-fno-objc-arcのクリックをDoneに入れてください。そして完了しました;)

ファイルがリストに存在しない場合は、+ボタンをクリックしてファイルを追加してから、上記と同じ作業を実行してください。その1つのクラス

ため

9

無効にARCにあなたがARCを使用するプロジェクトを移行する場合、-fobjcアークコンパイラフラグは、すべてのObjective-Cのソースファイルのデフォルトとして設定されています。特定のクラスのARCを無効にするには、そのクラスの-fno-objc-arcコンパイラフラグを使用します。

Xcodeのターゲットの[ビルドフェーズ]タブで、[ソースファイルのコンパイル]グループを開いてソースファイルリストを表示します。フラグを設定するファイルをダブルクリックし、ポップアップパネルに-fno-objc-arcと入力して「完了」をクリックします。

関連する問題