Objective-C協議初識

來源:互聯網
上載者:User

標籤:

 1 #import <Foundation/Foundation.h> 2 #import "IOSProgrammer.h" 3 #import "JavaCodingMonkey.h" 4 int main(int argc, const char * argv[]) { 5     @autoreleasepool { 6         JavaCodingMonkey * javaCodingMokey = [[JavaCodingMonkey alloc] init]; 7         [javaCodingMokey writeJavaCode]; 8          9         IOSProgrammer * iOSProgrammer = [[IOSProgrammer alloc] init];10         [iOSProgrammer sleep];11         [iOSProgrammer sing];12         [iOSProgrammer playGame];        13         [iOSProgrammer writeIOSCode];14         15         id<IOSProgrammerProtocol> staff = iOSProgrammer;16         [staff writeIOSCode];17         18         id<IOSProgrammerProtocol> staff2 = javaCodingMokey;19         [staff2 writeIOSCode];20         21         // id 類型的指標 遵守協議後 只能調用協議中的方法22         23         24     }25     return 0;26 }
main.m
1 #import <Foundation/Foundation.h>2 // @protocol 協議的名字 <NSObject>3 @protocol IOSProgrammerProtocol <NSObject>4 @required // 必須要實現的方法 預設 不實現會有警告5 - (void)writeIOSCode;6 @optional // 可選的方法 可以實現也可以不實現7 - (void)playTaiji;8 @end
IOSProgrammerProtocol.h
1 #import <Foundation/Foundation.h>2 #import "IOSProgrammerProtocol.h"3 @interface JavaCodingMonkey : NSObject<IOSProgrammerProtocol>4 - (void)writeJavaCode;5 @end
JavaCodingMonkey.h
 1 #import "JavaCodingMonkey.h" 2  3 @implementation JavaCodingMonkey 4 - (void)writeJavaCode { 5     NSLog(@"write Java Code"); 6 } 7  8 - (void)writeIOSCode { 9     NSLog(@"write ISO code");10 }11 @end
JavaCodingMonkey.m
1 #import <Foundation/Foundation.h>2 #import "IOSProgrammerProtocol.h"3 4 @interface IOSProgrammer : NSObject<IOSProgrammerProtocol>5 - (void)sing;6 - (void)sleep;7 - (void)playGame;8 @end
IOSProgrammer.h
 1 #import "IOSProgrammer.h" 2  3 @implementation IOSProgrammer 4 - (void)sing { 5     NSLog(@"唱了一首 會噴火葫蘆娃"); 6 } 7  8 - (void)sleep { 9     NSLog(@"好好的休息了一下");10 }11 12 - (void)playGame {13     NSLog(@"玩了一局英雄聯盟");14 }15 16 - (void)writeIOSCode {17     NSLog(@"write iOS code");18 }19 @end
iOSProgrammer.m



 

三、協議的應用與功能

 

a.應用

1.(主要功能)規範介面(協議規範介面是強制的)

2.   實現委託代理機制(實現對象之間的通訊)  代理設計模式

 

b.功能

  • 協議就是為了滿足統一的資料轉送
  • 一個類只能繼承一個直接的父類,但可以實現多個介面(遵守多個協議),間接的實現了多繼承.            

用協議實現多繼承  可定義多個協議   類遵守多個協議   實現協議中的方法 間接實現多繼承  

代碼就不寫了  很簡單

Objective-C協議初識

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.