OC之protocol監聽器的實現

  • 畫圖
  • 圖解
  • 代碼
  • 總結

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、總結

其實就是一個通訊過程,通訊雙方須要遵照相同的協議。 

相關文章
相關標籤/搜索