web-dev-qa-db-ja.com

プロジェクト内の1つのファイルに対してARCを無効にする方法

私は自分のプロジェクトでARCをうまく使っています。しかし、ARCのルールがもう少し壊れやすいファイル(ユニットテストやモックオブジェクトなど)に遭遇しました。私はこのオプションを見つけることができませんでしたが、ファイルごとにARCを無効にする方法があることを聞いたことを思い出します。

これは可能ですか?ファイルごとにARCを無効にする方法

1320
casademora

ファイルごとに-fno-objc-arcコンパイラフラグを追加することで、個々のファイルに対してARCを無効にすることができます。

Targets - > Build Phases - > Compile Sourcesでコンパイラフラグを追加します。 Compiler Flags の下の行の右側の列をダブルクリックする必要があります。 cmdボタンを押してファイルを選択し、次にenterを押してフラグ編集ボックスを開くことで、それを複数のファイルに追加することもできます。 (複数のファイルを編集すると、既に持っている可能性のあるフラグはすべて上書きされることに注意してください。)

例を含むサンプルプロジェクトを作成しました。 https://github.com/jaminguy/NoArc

xcode

詳細については、この回答を参照してください。 一部のファイルの自動参照カウントを無効にする

2149
jaminguy

ARCを無効にする on MULTIPLEファイル:

  1. Xcodeでターゲット/ビルドフェーズ/ソースをコンパイルで希望のファイルを選択します。
  2. プレス入力
  3. -fno-objc-arc と入力します。
  4. 入力 または 完了 を押します。

;)

enter image description here

459
Tibidabo

Xcode 4.3の場合は、もっと簡単な方法があります。編集/リファクタリング/客観的なC ARCへの変換後、変換したくないファイルをチェックします。この方法は、上記のコンパイラフラグを使用するのと同じです。

45
Jingjie Zhan

個々のファイルを円弧以外にするのはとても簡単な方法です。

以下の手順に従ってください。

個々のファイルでARCを無効にします。

  1. Xcodeでターゲット/ビルドフェーズ/ソースをコンパイルで希望のファイルを選択します。

  2. それを作成したい.mファイルを選択します。ARC以外のEnterキーを押します。 -fno-objc-arc と入力します。

非ARCファイルからARCプロジェクトへのフラグ:-fno-objc-arc

ARCファイルからARC以外のプロジェクトへのフラグ:-fobjc-arc

37
Dipak Narigara

注: 多くのファイルでARCを無効にしたい場合 、次の手順に従ってください。

  1. 「ビルドフェーズ」 - >「ソースのコンパイル」を開く
  2. "left_mouse" + "cmd" (分離ファイルの場合)または + "shift" (グループ化ファイルの場合 - 最初と最後を選択)でファイルを選択します。
  3. enterキーを押す
  4. -fno-objc-arcを貼り付ける
  5. もう一度Enterキーを押す
  6. お得!
35
digipeople

-fno-objc-arc> Build PhasesCompile Sourcesフラグを使うだけです

22
Rahul Gupta
  1. Xcodeプロジェクトを選択
  2. ターゲットに行く
  3. [ビルドフェーズ]セクションを選択します
  4. ビルドフェーズセクション内でコンパイルソースを選択します。
  5. ARCを無効にしたくないファイルを選択し、-fno-objc-arcを追加します。

Disable ARC for a particular file

13
user2538944

Xcodeの特定のファイルに対してARC(自動参照カウント)を無効にすることが可能です。

[ターゲット] - > [ビルドフェーズ] - > [ソースのコンパイル] - > [ファイルの選択](ダブルクリック) - >ポップアップウィンドウに "-fno-objc-arc"を追加します。

私は「到達可能性」ファイルを使用する際にこの状況に遭遇しました。

これは以下の図に示されています。

enter image description here

13

ビルド段階で各ファイルに-fno-objc-arcを使用する

11
Manish Jain

これで説明されている4つの必須ステップ video

    //1. Select desired files
    //2. Target/Build Phases/Compile Sources
    //3. Type -fno-objc-arc
    //4. Done
11
user2554822

スクリーンショットに従って、 -fno-objc-arc と入力してください。

enter image description here

Unityを使用している場合は、Xcodeでこれを変更する必要はありません。特定のファイルのメタデータに、Unityの中でコンパイルフラグを適用することができます。プロジェクトパネルでそれらを選択し、インスペクタパネルから適用するだけです。 Cloud Buildを使用する予定の場合、これは不可欠です。 enter image description here

6
greenland

フラグ「-fno-objc-arc」を追加してください。

簡単な手順に従ってください:アプリケーション>ターゲット>ビルドフェーズ>ソースのコンパイル>クラス "-fno-objc-arc"の後にフラグを追加

5
Manoj Chandel

他のすべての答えは、MRC(Manual Reference Count)を無効にし、ARC(Automatic Reference Count)を有効にする方法を説明していると思います。 MRC(Manual Reference Count)、すなわちMULTIPLEファイルでARC(Automatic Reference Count)を無効にする

  1. Xcodeでターゲット/ビルドフェーズ/ソースをコンパイルで希望のファイルを選択します。
  2. ENTERを押します
  3. -fobjc-arcと入力します。
  4. Enterキーを押すか完了
5
Vin

ARCを適用したくないファイルの前に、[ビルドフェーズ]> [ソースのコンパイル]で-fno-objc-arcフラグを使用するだけです。

2
C_compnay