2

私はXcodeの最新バージョンにアップデートしており、自動参照カウント(ARC)に関する複数のエラーが発生しています。Automatic Reference Countingについて知りたいことは何ですか?

エラーが、私はメモリ管理を扱っていることを書かれているautorelease、例えばへの呼び出しを引くために私を呼び出し、他のコードを微調整します。

Clang documentation読み取り:

[ARC]は、サイクルコレクタを提供しません。代わりに明示的にライフタイムを管理する必要があります。私は非常に神経質になり

...。私は過去にObjective-Cのメモリ管理の問題に噛まれ、そして私のコード内のすべてのretainreleaseautoreleaseを正当化する上で追従してきました。

今、ARCは、私のメモリ管理のセマンティクスを変更することで、信仰の飛躍を取るために私を呼んでいます。 ARCのメモリ管理に対する信頼を確立するために私は何を知る必要がありますか?

答えて

7

命名規則。すべてのスタティックアナライザーの問題を修正し、命名規則が明確で一致していることを確認します。これがコンパイラーとの通信になります。今、これは本当に必要なわけではありませんが、コンパイラとチェッカーの警告をすべて削除してテストし、ネーミングに満足していることを確認してから変換してください。つまり、警告レベルを上げて問題を解決することも意味します。

避け、ここで詳細属性:「属性を避ける」でDeep copy of dictionaries gives Analyze error in Xcode 4.2

の例は、型の安全性、わかりやすいメソッド名、そしてあなたが翻訳に使用するもの含め、厳格なセレクタマッチングを使用確保することの重要性を実証します。 opt:-Wstrict-selector-match。安全でないコンバージョンを実行するときにもタイプセーフティが発生します。プログラムの一部で特殊キャスティングによってタイプセーフティを導入する必要があります。アンマネージドタイプへ

ダングリング参照。ここに見られる:Assigning an existing CGColor to a CGColor property works in iOS Simulator, not iOS device. Why?

[ARC]サイクルコレクタを提供しません。代わりに明示的にライフタイムを管理する必要があります。

これは、強力な循環参照(例えば、共依存オブジェクト)を指します。これらはあなたの古いプログラムに存在します。インストゥルメントは、それらの検出に役立ちます。あなたが変換を締結した後

は、いくつかのOSのバージョンをテストするために準備すること。

Good Luck!


エクストラ:

What are the advantages and disadvantages of using ARC?

関連する問題