109

初心者のiPhoneプログラマーとして、iOS 5以前のバージョンで使用するアプリを作成するためのベストプラクティスは何ですか?具体的には、データのリリース/保持を引き続き使用する必要がありますか、それとも無視する必要がありますか?それは重要ですか?

4

7 に答える 7

170

個々のファイルでARCをオフにする方法にまだ興味がある人のために、私がしたことは次のとおりです。

  1. 下のプロジェクト設定に移動しますBuild Phases > Compile Sources
  2. ARCを無効にするファイルを選択し、-fno-objc-arcコンパイラフラグを追加します。ファイルを選択して「Enter」キーを押すと、一度に複数のファイルにフラグを設定できます。

これが推奨される方法かどうかはわかりませんが、私にとってはうまくいきます。

PS:この情報は、公的にアクセス可能なclang.llvm.orgから収集したため、NDAではありません。

于 2011-06-21T18:05:47.070 に答える
98

それはあなた次第です。ARC(自動参照カウント)を使用してアプリを作成できます。Xcodeは「グルーコード」を作成して、ARC対応アプリをiOS4で実行できるようにします。変更は必要ありません。ただし、特定の機能が動作せず、使用したいライブラリの多くが(場合によっては)無数のエラーをスローし、開発者がARCと互換性のあるアップデートをリリースするまでそれらを使用できなくなります。


編集:私は最近、ファイルごとにARCをオフにできることを発見しました。pixelfreakの回答を参照してください。ですから、私のアドバイスは今でも有効ですが、ARCで動作するようにサードパーティのライブラリを更新する必要はありません。

特定のファイルに対してARCをオプトアウトすることについてAppleが言っていることは次のとおりです。

ARCを使用するようにプロジェクトを移行すると、すべてのObjective-Cソースファイルのデフォルトとして-fobjc-arcコンパイラフラグが設定されます。特定のクラスのARCを無効にするには、そのクラスの-fno-objc-arcコンパイラフラグを使用します。Xcodeの[ターゲットのビルドフェーズ]タブで、[ソースのコンパイル]グループを開き、ソースファイルのリストを表示します。フラグを設定するファイルをダブルクリックし、ポップアップパネルに-fno-objc-arcと入力して、[完了]をクリックします。

ここに画像の説明を入力してください

こちらの完全な移行ガイドをご覧ください

于 2011-06-10T15:28:14.693 に答える
10

iOS 5はまだNDAの下にあり、おそらくパブリックバージョンがリリースされるまで続くでしょう。開発者アカウントをお持ちの場合は、AppleDeveloperForumsにアクセスして質問してください。

以前のバージョンでは、参照をカウントし、それに応じて保持およびリリースする必要があります。メモリ管理ガイドを確認してください。

編集:自動参照カウントの公開仕様と公開iOS5ページからの引用は次のとおりです。

Objective-Cの自動参照カウント(ARC)により、メモリ管理がコンパイラの仕事になります。新しいAppleLLVMコンパイラでARCを有効にすることで、retainまたはreleaseを再度入力する必要がなくなり、クラッシュやメモリリークを減らしながら、開発プロセスを大幅に簡素化できます。コンパイラーはオブジェクトを完全に理解し、使用されなくなった瞬間に各オブジェクトを解放するため、アプリはこれまでになく高速に実行され、予測可能でスムーズなパフォーマンスが得られます。

于 2011-06-10T15:23:37.840 に答える
4

詳細は現時点では軽量/NDAに基づいていますが、AppleはiOS 5に自動参照カウント(ARC)を実装しています。詳細については、http://developer.apple.com/technologies/ios5/を参照してください。

iOS 5SDKを使用してXcode4で新しいアプリを開発する場合は、保持/解放のカウントを無視しても問題ありません。

[編集]sudorm-rfは良い点です。サードパーティのライブラリが大幅に影響を受ける可能性があります

于 2011-06-10T15:23:52.893 に答える
3

SystemConfiguration.frameworkについて言及した人は誰もいませんか?フレームワークに入れることを忘れないでください。私はそれを実現するために惨めに数時間を費やしました。

于 2012-01-10T01:07:16.170 に答える
3

それは確かに開発者またはチームの選択です。ARC(自動参照カウンター)は、メモリを自動的に管理することにより、作業を少し簡単にしました。必要に応じて、リリース、保持、および割り当て解除を行います。まだ行っていない場合は、できればテストアプリケーションでメモリを自分で管理する経験を積む必要があると思います。考慮すべきもう1つのことは、アプリケーションがサードパーティのライブラリに依存しているかどうかです。サードパーティのライブラリは、ARCに変換されない場合、アプリケーションのコンパイルを妨げます。選択は明らかに目前の状況に依存します。

于 2012-11-29T19:51:12.373 に答える
0

プロジェクト設定>ビルドフェーズ>ソースのコンパイルでフラグを-fno-objc-arcとして設定します

于 2014-05-20T14:19:08.433 に答える