「Objective-Cで、参照先のオブジェクトから参照元に通知を送る方法。」を読んてで思ったんですが、若干冗長な気がする。 プロトコルを使う プロトコルを使うんだったら、最初からそのプロトコルに適合するオブジェクトしかdelegateになれないようにしちゃった方がいいと思う。こんな感じで。 @interface Foo : NSObject { id<SampleDelegate> delegate; } @property (assign) id<SampleDelegate> delegate; @end こうしちゃえば、そもそもSampleDelegateに適合しないオブジェクトはdelegateになれないので、conformsToProtocolのチェックは必要なくなる。UIKitでも(例えばUITableViewのdelegateとか)大体そうなってますね。あと、ObjCはレシ
Objective-C でよく使われるパターンとして、デリゲートがあります。C# などの言語では、デリゲートは言語の機能としてありますが、Objective-C では、言語としてデリゲートの機能があるわけではありません。 概要 Objective-C でのデリゲートとは、あるインスタンスに送られたメッセージを、そのまま別のあるインスタンスに受け流し、そのインスタンスにメソッドの実行を委ねることです。Objective-C では、メッセージの転送が容易に可能なので、このようなデリゲートの実現がされています。 上の図は、sender が receiver に message: を送信したところ、 receiver の delegate インスタンスにメッセージ転送が起きた図です。 デリゲートの実例 Cocoa Application において、デリゲートはさまざまなところで利用されています。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く