iOS基礎(chǔ)筆記(二)

Protocol蚣驼,簡單來說就是一系列不屬于任何類的方法列表,其中聲明的方法可以被任何類實(shí)現(xiàn)。這種模式一般稱為代理(delegation)模式聪铺。你通過Protocol定義各種行為扼菠,在不同的場景采用不同的實(shí)現(xiàn)方式摄杂。在iOS和OS X開發(fā)中坝咐,Apple采用了大量的代理模式來實(shí)現(xiàn)MVC中View和Controller的解耦循榆。

定義Protocol很簡單,在聲明文件(h文件)中通過關(guān)鍵字@protocol定義墨坚,然后給出Protocol的名稱秧饮,方法列表,然后用@end表示Protocol結(jié)束泽篮。在@end指令結(jié)束之前定義的方法盗尸,都屬于這個(gè)Protocol。例如:

@protocol ProcessDataDelegate

@required

- (void) processSuccessful: (BOOL)success;

@optional

- (id) submitOrder: (NSNumber *) orderid;

@end

以上代碼可以單獨(dú)放在一個(gè)h文件中帽撑,也可以寫在相關(guān)類的h文件中泼各,可以視具體情況而定。該P(yáng)rotocol包含兩個(gè)方法亏拉,processSuccessful和submitOrder扣蜻。這里還有兩個(gè)關(guān)鍵字,@required和@optional及塘,表示如果要實(shí)現(xiàn)這個(gè)協(xié)議莽使,那么processSuccessful方法是必須要實(shí)現(xiàn)的,submitOrder則是可選的笙僚,這兩個(gè)注解關(guān)鍵字是在Objective-C 2.0之后加入的語法特性芳肌。如果不注明,那么方法默認(rèn)是@required的肋层,必須實(shí)現(xiàn)亿笤。

那么如何實(shí)現(xiàn)這個(gè)Protocol呢?創(chuàng)建一個(gè)普通的Objective-C類栋猖,取名為TestAppDelegate净薛,這時(shí)會(huì)生成一個(gè)h文件和m文件。在h文件中引入包含Protocol的h文件掂铐,之后聲明采用這個(gè)Protocol即可罕拂,如下:

@interface TestAppDelegate : NSObject;

@end

用尖括號(hào)(<…>)括起來的ProcessDataDelegate就是我們創(chuàng)建的Protocol。如果要采用多個(gè)Protocol全陨,可以在尖括號(hào)內(nèi)引入多個(gè)Protocol名稱爆班,并用逗號(hào)隔開即可。例如

m文件如下:

@implementation TestAppDelegate

- (void) processSuccessful: (BOOL)success{

if (success) {

NSLog(@"成功");

}else {

NSLog(@"失敗");

}

}

@end

由于submitOrder方法是可選的辱姨,所以我們可以只實(shí)現(xiàn)processSuccessful

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末柿菩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子雨涛,更是在濱河造成了極大的恐慌枢舶,老刑警劉巖懦胞,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異凉泄,居然都是意外死亡躏尉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門后众,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胀糜,“玉大人,你說我怎么就攤上這事蒂誉〗淘澹” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵右锨,是天一觀的道長括堤。 經(jīng)常有香客問我,道長绍移,這世上最難降的妖魔是什么悄窃? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮登夫,結(jié)果婚禮上广匙,老公的妹妹穿的比我還像新娘。我一直安慰自己恼策,他們只是感情好鸦致,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著涣楷,像睡著了一般分唾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上狮斗,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天绽乔,我揣著相機(jī)與錄音,去河邊找鬼碳褒。 笑死折砸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沙峻。 我是一名探鬼主播睦授,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼摔寨!你這毒婦竟也來了去枷?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎删顶,沒想到半個(gè)月后竖螃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡逗余,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年特咆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片猎荠。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡坚弱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出关摇,到底是詐尸還是另有隱情,我是刑警寧澤碾阁,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布输虱,位于F島的核電站,受9級(jí)特大地震影響脂凶,放射性物質(zhì)發(fā)生泄漏宪睹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一蚕钦、第九天 我趴在偏房一處隱蔽的房頂上張望亭病。 院中可真熱鬧,春花似錦嘶居、人聲如沸罪帖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽整袁。三九已至,卻和暖如春佑吝,著一層夾襖步出監(jiān)牢的瞬間坐昙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來泰國打工芋忿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留炸客,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓戈钢,卻偏偏與公主長得像痹仙,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子逆趣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理蝶溶,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,716評(píng)論 18 139
  • —消息—消息傳遞模型(Message Passing)是Objective-C語言的核心機(jī)制抖所。在Objective...
    SuAdrenine閱讀 591評(píng)論 0 0
  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,168評(píng)論 30 470
  • 37.cocoa內(nèi)存管理規(guī)則 1)當(dāng)你使用new梨州,alloc或copy方法創(chuàng)建一個(gè)對(duì)象時(shí),該對(duì)象的保留計(jì)數(shù)器值為1...
    如風(fēng)家的秘密閱讀 856評(píng)論 0 4
  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉田轧,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 1,732評(píng)論 0 9