1、畫圖服務器
本人畫了一個圖(字體和畫圖水平請忽略)app
2、圖解字體
1.首先咱們上邊是一個按鈕的類,按鈕當中包括了一條線,這個線是什麼呢?atom
其實難理解就難理解到這條線上了spa
1⃣️這條線首先來講屬於按鈕的一部分,是一個成員變量code
2⃣️這條線中定義了一個協議,什麼協議?爲何要定義協議?我想到一個很是好的例子blog
咱們的電腦想要實現通訊,遵循的是TCP/IP協議,協議自己獨立了咱們電腦存在。可是咱們電腦內部默認有那麼一個東西讓咱們實現了這個協議io
3⃣️監聽器也實現這個協議,接着上邊的例子class
騰訊的qq服務器想知道咱們是否是登qq,他就也須要實現TCP/IP協議。至關於咱們如今實現了連同import
總結:點擊登陸qq,經過協議傳給騰訊服務器,實現登陸。OK!
3、代碼
1.協議
// // ButtonProtocol.h // 監聽器的實現 // // Created by apple on 14-3-26. // Copyright (c) 2014年 apple. All rights reserved. // #import <Foundation/Foundation.h> @protocol ButtonProtocol <NSObject>
-(void)onClick:(Button *)btn;
@end
很簡單,協議裏面就有一個onClick方法
2.Button類
// // Button.h // 監聽器的實現 // // Created by apple on 14-3-26. // Copyright (c) 2014年 apple. All rights reserved. // #import <Foundation/Foundation.h> #import "ButtonProtocol.h" @interface Button : NSObject //咱們說的Button的那條線 @property (nonatomic, retain) id<ButtonProtocol> delegate; -(void)press; @end
// // Button.m // 監聽器的實現 // // Created by apple on 14-3-26. // Copyright (c) 2014年 apple. All rights reserved. // #import "Button.h" @implementation Button -(void)press { [_delegate onClick]; } @end
3.ButtonListener類
// // ButtonListener.h // 監聽器的實現 // // Created by apple on 14-3-26. // Copyright (c) 2014年 apple. All rights reserved. // #import <Foundation/Foundation.h> #import "ButtonProtocol.h" @interface ButtonListener : NSObject <ButtonProtocol> @end
// // ButtonListener.m // 監聽器的實現 // // Created by apple on 14-3-26. // Copyright (c) 2014年 apple. All rights reserved. // #import "ButtonListener.h" @implementation ButtonListener -(void)onClick { NSLog(@"按鈕被點擊了"); } @end
代碼都仍是挺簡單的,主要仍是理解。理解了代碼就天然出來了
4、總結
其實就是一個通訊過程,通訊雙方須要遵照相同的協議。