iPhone应用程序中的“委托”是什么意思

时间:2010-07-06 02:26:29

标签: iphone dictionary

我通常在苹果文档及其图书馆书中读到“委托”一词。这个词的确切含义是什么? iPhone中的任何特殊含义?

非常感谢。

4 个答案:

答案 0 :(得分:5)

代理是面向对象语言中的设计模式,它允许对象“调出”未知代码,以执行该对象无法独立完成的活动或计算。假设你有一个班级狗:

@protocol DogDelegate;

@interface Dog : Wolf <Domesticated>
- (void)bark;
- (void)tiltHeadAdorably;

- (void)playWithToy: (Toy *)aToy;
@property (readonly) Toy *favoriteChewToy;

@property (readwrite, assign) id <DogDelegate> delegate; // "DELEGATE" PROPERTY DECLARED HERE
@end

委托对象通常由实例化Dog的代码提供,并由该实例调用以执行狗本身无法执行的操作。例如,考虑DogDelegate协议的这个接口,它定义了Dog委托对象应该做什么:

@protocol DogDelegate <NSObject>
@required - (void)letDogOut: (Dog *)aDog;
@required - (void)letDogIn: (Dog *)aDog;
@optional - (void)scratchDog: (Dog *)aDog forTimeInterval: (NSTimeInterval)duration;
@end

在这种情况下,DogDelegate的实例通常是Dog的所有者(并且,在Objective-C中,委托通常拥有一个对象,因此这与隐喻很好地排列在一起。狗,当它需要出去进行...狗活动时......会要求其代表执行-letDogOut:方法,将狗放在后院。完成后,它会要求其代表执行-letDogIn:方法,将狗带回内部。当狗想要感情时,如果它的代表能够,它将要求代表使用-scratchDog:forTimeInterval:抓一段时间。

答案 1 :(得分:3)

委托是Apple大量采用的设计模式。简而言之,把它想象成“我负责处理......”。其中......是通知,事件,协议等。例如,您AppDelegate负责处理App设置,显示,启动。

请记住,我过度简化它。但我相信如果你需要,有人可以提供更详细的答案。

答案 2 :(得分:0)

委托与JS中的回调函数相同(例外情况是委托是类型安全的。)例如,如果您在JS中执行Ajax,则声明在Ajax时调用回调函数通话完成。以同样的方式,您将声明要调用的委托函数,例如,当歌曲选择对话框关闭时。

答案 3 :(得分:-2)

Delegate是一个控制整个应用程序的对象。它显示主窗口,并告诉应用程序启动和关闭时要执行的操作。它基本上是您的应用程序的命令中心。使用它的最佳方法是调用其他控制器来显示一些NIBS。 iPhone应用程序中的委托确实没有什么特别之处,但有一些特殊的方法被称为。