私はスコットスティーブンソンによって管理されている素晴らしいブログをサーフィンしていて、代理人に「割り当て」プロパティと「保持」を割り当てるという基本的なObjective-Cの概念を理解しようとしています。ガベージコレクションされた環境では、どちらも同じであることに注意してください。私は主に非GCベースの環境(例:iPhone)に関心があります。
スコットのブログから直接:
「assignキーワードは、値をコピーまたは保持するのではなく、インスタンス変数に直接値を割り当てるセッターを生成します。これは、NSIntegerやCGFloatなどのプリミティブ型、またはデリゲートなどの直接所有していないオブジェクトに最適です。」
デリゲートオブジェクトを直接所有していないとはどういう意味ですか?私は通常、デリゲートを保持します。なぜなら、彼らが奈落の底に逃げたくない場合は、保持がそれを処理してくれるからです。私は通常、UITableViewControllerをそれぞれのdataSourceおよびデリゲートから分離して抽象化します。その特定のオブジェクトも保持します。UITableViewには常にデリゲートがあるので、それが消えないようにしたいと思います。
誰かがどこで/なぜ私が間違っているのかさらに説明できるので、Objective-C 2.0プログラミングで、保持の代わりにデリゲートで割り当てプロパティを使用するこの一般的なパラダイムを理解できますか?
ありがとう!