小結:這一堂課學習了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...