开发者

Delegates in Objective-C [duplicate]

This question already has answers here: Closed 11 years ago.

Possible Duplicate:

How does a delegate work in objective-C?

Hello Community,

I have been trying to understand the concept of delegates in Objective-C. I trie开发者_如何转开发d following up the documentation, however I am looking for some really easy example to get familiarized as of how to send messages between delegates and if I want to create a custom delegate, how may I go further with that?

Hope someone could make me better understand this concept.


The basic concept of delegates is to delegate important decisions or information to some other object instance.

In most frameworks you use subclassing and override methods in order to hook into the application flow. It works but the drawbacks are many, for example:

  • You can not change the decision maker without a complete new subclass.
  • Without multiple inheritance you can only make decisions for one object (yourself).

There are four reasons why an object might want to call upon a delegate, and each of these four uses a keyword in the delegate method name to signal this. It's a naming convention only, but you should follow the pattern if you want to be a good citizen.

  • Ask if something should happen. For example: gestureRecognizer:shouldReceiveTouch:
  • Before something unavoidable is going to happen. For example: applicationWillTerminate:.
  • After something has occured. For example: accelerometer:didAccelerate:
  • And to retrieve data, this is more a data source than a delegate, but the line between the two are fuzzy. The name do not contain a defined name, but should contain the named piece of data that is requested. For example: tableView:targetIndexPathForMoveFromRowAtIndexPath:toProposedIndexPath:

As a general rule the first argument to any delegate method should be the named object instance requesting delegation.


Check here:How do I create delegates in Objective-C? Or: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/CommunicatingWithObjects/CommunicateWithObjects.html#//apple_ref/doc/uid/TP40002974-CH7-SW18

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜