2015 7 29 第四堂 protocol協議

2021-07-04 05:28:10 字數 3036 閱讀 8490

小結:這一堂課學習了protocol協議,以很生動的舉例(如職工協議、貓狗人的動作)深入了其了解。protocol實際上是乙個介面,他可以被任何類實現,其中有必須實現的required,有選擇實現的optional。比較簡單易於理解,之後對其進行小練習。

知識點一:protocol協議的定義

一系列不屬於任何類的方法列表,其中宣告的方法可以被任何類實現

協議不是類,它是定義了乙個其他物件可以實現的介面

如果在某個類中實現了協議中的某個方法,就說明服從了這個協議

注意:1.協議中不能定義屬性變數或者成員變數,只能定義方法

2.一可以服從多

3.協議中定義的方法不一定實現(oc是弱語法)

知識點二:之前補充 oc基礎 obejetive c programming guide

1.property的使用

2.(ios開發/物件導向)繼承

3.protocol 協議-**(委託)

4.category 類別

5.block 塊

6.oc記憶體管理

重點 foundation框架

各自有哪些方法

知識點三:protocol的定義

//定義乙個協議

@protocol animalactionprotocol //尖括號裡是其服從的協議

@required

//下面的方法必須實現

- (void)eat;

@optional

//下面的方法可以選擇實現

- (void)run;

- (void)say;

- (void)sleep;

@end

知識點四:判斷物件實現方法,判斷物件服從協議

//判斷某個物件有沒有實現某個方法

if ([animal respondstoselector:@selector(run)]) else

//判斷某個物件是否服從了某個協議

if ([animal conformstoprotocol:@protocol(animalactionprotocol)]) else

知識點五:回顧成員變數和屬性變數的區別

@inte***ce

person :

nsobject

@property(nonatomic, copy)

nsstring

*address;

//屬性變數

@end

**如下:

//

// main.m

// protocol

//// created by baocloud-imac8 on 15/7/29.

//#import #import "dog.h"

#import "person.h"

int main(int argc, const char * argv) else

//判斷某個物件是否服從了某個協議

if ([animal conformstoprotocol:@protocol(animalactionprotocol)]) else

}return 0;

}

//

// person.h

// protocol

//// created by baocloud-imac8 on 15/7/29.

//#import #import "animalactionprotocol.h"

@inte***ce person : nsobject

@property (nonatomic, copy) nsstring *address;//屬性變數

@end

//

// person.m

// protocol

//// created by baocloud-imac8 on 15/7/29.

//#import "person.h"

@implementation person

//必須實現的方法

- (void)eat

//可選方法 根據自己的情況選擇實現

- (void)say

- (void)run

- (void)sleep

@end

//

// dog.h

// protocol

//// created by baocloud-imac8 on 15/7/29.

//#import #import "animalactionprotocol.h"

@inte***ce dog : nsobject@end

//

// dog.m

// protocol

//// created by baocloud-imac8 on 15/7/29.

//#import "dog.h"

@implementation dog

//必須實現的方法

- (void)eat

//可選方法

- (void)say

- (void)sleep

@end

//

// animalactionprotocol.h

// protocol

//// created by baocloud-imac8 on 15/7/29.

//#import //定義乙個協議

@protocol animalactionprotocol @required //下面的方法必須實現

- (void)eat;

@optional //下面的方法可以選擇實現

- (void)run;

- (void)say;

- (void)sleep;

@end

第四堂課後作業

作業1 目標 了解自己常用的ide 我的ide是visual studio6.0,該應用軟體可以用來編寫一些簡單的c 語言程式等 暫時我對它的了解與應用就是寫c 程式,或許以後會有更多的應用與發現 該應用軟體可以對我所編寫的計算機語言進行儲存,並對一些玩的程式進行除錯,測試,以檢測你的程式中的bug...

第四周 課堂活動(體重問題)

問題 設計乙個能身測試高體重是否標準的物件導向的程式 解決 include using namespace std void fun out double w,double w class test void fun void test fun else weight height 105 fun ...

嵌入式第四周課堂總結

偵錯程式 gdb 1.gnu計畫的工具 核心除錯kgdb 2.程式的錯誤分類 編譯時錯誤 語法錯誤 執行時錯誤 記憶體錯誤,邏輯錯誤 3.gdb的功能 1執行程式 2設定斷點 3檢視變數值 4.hello.c gcc g hello.c o hello gcc gdb 5.使用 tui layout...