私はこれを少し異なって/より単純に言います:委任はクラスが互いに話すことを可能にするいくつかの方法の1つです。これはObjective-Cに固有のものではなく、すべてのジョブに常に適したツールであるとは限りません。
TL; DR:心配しないでください-まだです!
委任がまだ何であるかについて心配する必要はありません。それは、本当に木を切り倒したいときに、ナイフがどのように作られるかを尋ねるようなものです。この場合、実行することでより多くの(そしてより速く)学ぶことができ、AppleのUITableViewドキュメントは素晴らしいです:
http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/tableview_iphone/AboutTableViewsiPhone/AboutTableViewsiPhone.html
あなたがやろうとしていることは非常に構造化されており、新しいコードを発明する必要はありません。実際、基本的にはできません。Appleはすでにどのように機能するかを決定してUITableView
いるので、その背後にある理論を理解しても(まだ)役に立たない。
だから今のところ、恐れることはなく、上記のリンク(おそらくGoogleのUITableViewチュートリアル)を押してください。特定の問題が発生した場合(そして間違いなくそうなります)、ここでそれらについて投稿してください。:)
後で:委任の1分間の概要
..そしてある日、お互いに話し合う必要のある独自のクラスとサブクラスを作り始める必要がある時が来るでしょう。それはあなたが委任について知る必要があるときです!
('Table' UIViewController
)を示すクラス(私は単に'You'と呼びます)のインスタンスがあると想像してください。UITableView
その場合、AppleUITableView
は委任を使用するように設計されているため、Tableはあなたにたくさんの質問をすることができます。テーブルはあなたに尋ねるかもしれません:私は何行を表示する必要がありますか?各列の高さはどれくらいですか?行72のセルはどのようになりますか?あなたはこれを知っていますが、Tableは知らないので、Tableは委任/データソースメソッドを介して答えを求めます。あなたのコードは答えで応答します。
さらに良いこと:クラスはあなたに物事を伝えるように強制することができます!例:「ユーザーがセルをタップした」、「自分を閉じようとしている」、「画面が回転した」。これらの方法の利点は、あらゆる種類の重大なイベントに対応して準備できることです。これはiOSプログラミングのHUUUUUUUGE部分であり、頻繁に遭遇します。
それは一言で言えば委任であり、クラスが互いに通信するためのさらに素晴らしい方法があります-たとえば、ブロック、場合によっては直接変数ストレージです。
そして、あなたが本当にもっと知りたいのなら、私はまだそれをお勧めしませんが、ここで別の良いアップルのドキュメントをチェックすることができます:
http://developer.apple.com/library/ios/#documentation/General/Conceptual/DevPedia-CocoaCore/Delegation.html