Objective-C學習之路 委託用法與講解

來源:互聯網
上載者:User

Objective-C學習之路 委託用法與講解,是本文要介紹的內容,當然在學習委託之前,你也許對Objective-C已經很是瞭解了,那麼我們直接看內容。

1)僱主與委託者共同參與一個處理,說白了就是調用僱主方法的時候在僱主的方法內不但有相應的邏輯處理,還得請求委託者的方法共同處理

2)請求委託者的方法時要將自己傳遞過去,也就是說把自己當作一個入參傳遞過去,當然也可以有不同的實現,只是委託者能獲得僱主就可以

 
  1. #import <Cocoa/Cocoa.h> 
  2. /**  
  3.  *委託的Demo  
  4.  *  
  5.  *@author 肖浩  
  6.  **/  
  7. //委託類,委託類沒有任何方法聲明,它只需實現非正規協議的中需要的方法  
  8. @interface DemoDelegate : NSObject   
  9. @end //DemoDelegate  
  10.  
  11. //僱主類  
  12. @interface Demo : NSObject {  
  13.  
  14. //委託類
  15. DemoDelegate *demoDelegate;  
  16.  
  17. }  
  18.  
  19. -(void) setDemoDelegate : (DemoDelegate *) delegate;  
  20.  
  21. -(void) sendMessage;  
  22.  
  23. @end //Demo  
  24.  
  25. //NSObject的WSDelegate類別,定義非正規協議  
  26.  
  27. @interface NSObject (WSDelegate)   
  28.  
  29. -(void) setDemoDelegate : (DemoDelegate *) delegate;  
  30. -(void) handlerDelegate : (Demo *) demo;  
  31. @end //WSDelegate  
  32. @implementation Demo   
  33. -(void) setDemoDelegate : (DemoDelegate *) delegate {  
  34. [delegate retain];  
  35. [demoDelegate release];  
  36. demoDelegate = delegate;  
  37. }  
  38. //通知委託類方法執行  
  39. -(void) sendMessage {  
  40. [demoDelegate handlerDelegate : self];  
  41. }  
  42. -(void) dealloc {  
  43. [demoDelegate release];  
  44. [super dealloc];   
  45. }  
  46. @end //Demo  
  47. @implementation DemoDelegate   
  48. //相應的委託方法  
  49. -(void) handlerDelegate : (Demo *) demo {  
  50. NSLog(@"%@", demo);   
  51. }  
  52. @end //DemoDelegate  
  53. int main (int argc, char *argv[]) {  
  54. NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];  
  55. Demo *demo = [[Demo alloc] init];  
  56. DemoDelegate *delegate = [[DemoDelegate alloc] init];  
  57. [demo setDemoDelegate : delegate];  
  58. [demo sendMessage];  
  59. [pool release];  
  60. return (0);  

當然,上面的代碼注釋沒有寫的特別詳細,因為相信如果你在學習Objective-C委託,那麼你一定掌握了Objective-C的基本知識,上面的代碼是很簡單的,你肯定可以看的懂,這些都是我綜合資料之後總結的概念,如果哪裡有不對的地方還希望和大家多交流,希望對大家有協助.

小結: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.