iPhoneプログラマーとして、iOS 5以前のバージョンで使用するアプリを作成するためのベストプラクティスは何ですか?具体的には、データのリリース/保持を引き続き使用する必要がありますか、それとも無視する必要がありますか?それは重要ですか?
iPhoneプログラマーとして、iOS 5以前のバージョンで使用するアプリを作成するためのベストプラクティスは何ですか?具体的には、データのリリース/保持を引き続き使用する必要がありますか、それとも無視する必要がありますか?それは重要ですか?
回答:
それはあなた次第です。ARC(自動参照カウント)を使用してアプリを記述できます。Xcodeは「グルーコード」を書き込んで、ARC対応アプリをiOS 4で実行できるようにします。変更は必要ありません。ただし、一部の機能が動作せず、使用したいと思う可能性のあるほとんどのライブラリが(場合によっては)無数のエラーをスローし、開発者がARCと互換性のあるアップデートをリリースするまでそれらを使用できなくなります。
編集:私は最近、ファイルごとにARCをオフにできることを発見しました。pixelfreakの回答をご覧ください。ですから、私のアドバイスはまだ残っていますが、今ではサードパーティのライブラリをARCで動作するように更新する必要はありません。
Appleが特定のファイルに対してARCをオプトアウトすることについて、次のように述べています。
プロジェクトを移行してARCを使用する場合、-fobjc-arcコンパイラフラグがすべてのObjective-Cソースファイルのデフォルトとして設定されます。特定のクラスのARCを無効にするには、そのクラスの-fno-objc-arcコンパイラフラグを使用します。Xcodeのターゲットビルドフェーズタブで、[ソースのコンパイル]グループを開き、ソースファイルのリストを表示します。フラグを設定するファイルをダブルクリックし、ポップアップパネルに-fno-objc-arcと入力して、[完了]をクリックします。
こちらの完全な移行ガイドをご覧ください。
-fno-objc-arc
JSONKit
例えば、。ARCチェックを実行してみてください。私の言っていることがわかります。;)
個々のファイルでARCをオフにする方法にまだ興味がある人のために、これが私がしたことです:
Build Phases > Compile Sources
これが推奨される方法かどうかはわかりませんが、私にとってはうまくいきます。
PS:私はここでclang.llvm.orgからこの情報を収集しました。これは公的にアクセス可能なため、NDAの下ではありません。
iOS 5はまだNDAの下にあり、おそらく彼らがパブリックバージョンをリリースするまでになるでしょう。開発者アカウントをお持ちの場合は、Apple開発者フォーラムにアクセスして質問してください。
以前のバージョンでは、参照をカウントし、それに応じて保持およびリリースする必要があります。チェックアウトメモリ管理ガイドを。
編集:ここにあります自動参照カウントのための公開仕様およびからの引用公共のiOS 5ページ:
Objective-Cの自動参照カウント(ARC)は、メモリ管理をコンパイラの仕事にします。新しいApple LLVMコンパイラでARCを有効にすることで、型の保持やリリースを再度行う必要がなくなり、クラッシュやメモリリークを減らしながら、開発プロセスを大幅に簡略化できます。コンパイラーはオブジェクトを完全に理解し、使用されなくなった瞬間に各オブジェクトを解放するため、アプリは予測可能なスムーズなパフォーマンスでこれまでと同じくらい高速に実行されます。
詳細は現時点では軽量/ NDAに準拠していますが、AppleはiOS 5に自動参照カウント(ARC)を実装しています。詳細はこちら:http : //developer.apple.com/technologies/ios5/
iOS 5 SDKを使用してXcode 4で新しいアプリを開発する場合、保持/リリースのカウントを無視しても問題ありません。
[編集] sudo rm -rfは良い点です。サードパーティのライブラリが著しく影響を受ける可能性があります
SystemConfiguration.frameworkについて誰も言及していませんか?フレームワークに組み込むことを忘れないでください。私はそれを実現するために惨めに数時間を費やしました。