天天看点

Objective-C中协议和委托

objective-c中的协议(protocol)类似于常用的接口,协议(protocols)中定义的方法,在类中实现。

@protocol myfirstprotocol

- (void)myfirstprotocolmethod;

@end

在iphone os中,协议(protocol)通常用来实现委托对象(delegate object)。委托对象(delegate object)一般用来自己定义行为或者动作,也就是调用自己定义方法,但自己不实现该方法,委托其它的类来实现该方法。

uiapplication类就是一个典型的例子。uiapplication类中定义了一个应用程序应有的行为或者动作。而不是强制让你的uiapplication子类去接受当前应用程序的状态消息并做出相应处理。uiapplication类通过调用特殊的方法,来传递这些消息给它的委托对象。这个委托对象通过实现名为uiapplicationdelegate的协议(protocol),之后就可以接受到当前应用程序的状态消息并做出相应处理。比如内存不够的错误,应用程序被中断等重要消息。

下面是一个helloworld代码:

main.m