2

私はARCベースのプロジェクトに取り組んでいます。私のプロジェクトは、IOS 4.3 を対象としています。バージョン < IOS 5.0 にはウィーク ポインターがないため、unsafe_unretainedダングリング ポインターが発生する可能性があるものを使用する必要があります。

unsafe_unretained で ARC を使用するのは本当に良いオプションでしょうか? それとも、私のプロジェクトは IOS 4.3 をターゲットにしているので、手動のメモリ管理に戻す必要がありますか?

私の場合に ARC を使用するのが適切なオプションである場合、unsafe_unretained プロパティをどこで nil に設定する必要がありますか? viewDidUnload で実行している人を見たことがありますが、通常のシナリオでは viewDidUnload が呼び出されることはありません。どんな助けでも大歓迎です。

4

2 に答える 2

1

ポインターがぶら下がっている可能性がある unsafe_unretained を使用する必要があります。

はい、しかし、ARC以前では、弱い参照に保持されていないポインターも使用していたため、現在行っていることよりも悪くはありません.

weakPLWeakCompatibility ライブラリを使用する場合、iOS 4.3 をターゲットにしている間に使用できることも追加します: https://github.com/plausiblelabs/PLWeakCompatibility

于 2013-04-18T02:16:36.670 に答える
0

[弱いサポートなしで] ARC を使用することは本当に良いオプションですか?

はい。ARC は一般に、コードの簡潔さ、読みやすさ、およびメモリ関連のバグの数を減らすという点で大きな利点と考えられています。私の個人的な意見では、これが ARC の主な利点です。

weak のサポートは素晴らしく、ARC のもう 1 つの利点です (iOS 5 で)。しかし、__weakですぐに現れるバグを隠すことができる場合があり__unsafe_unretainedます。

私のコードでは、プロパティや変数を使用するたびにweak、その結​​果について考える必要があります。一方、ARC の残りのメモリ管理では、考える必要が少なくなります (これは良いことです)。

于 2012-11-07T09:21:00.820 に答える