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
#import int main(int argc, char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc, argv, nil, nil); [pool release]; return retVal; }