Protocol(協(xié)議)
一個協(xié)議是由一組方法組成,這組方法分為兩類,@required:必須實現(xiàn)的方法 画舌,@optional:可選 實現(xiàn)的方法(可以全部都不實現(xiàn))。一個類遵守某個協(xié)議已慢,則相當(dāng)于聲明了一系列該協(xié)議中定義的方法曲聂。若一個類遵守某個協(xié)議,則可以視為該類具有某種功能佑惠。而如果一個類定義了某個協(xié)議朋腋,則是該類希望別的類來替它實現(xiàn)的功能。
Delegate(委托)
委托和協(xié)議是有著緊密的聯(lián)系的膜楷。類A自己不具備某項功能旭咽,而委托類B來實現(xiàn)該項功能,代理類(類B)承擔(dān)實際的功能赌厅。往往這種情況里穷绵,類A定義了協(xié)議和協(xié)議里的方法(即希望類B完成的功能),而類B遵守了該協(xié)議特愿,實現(xiàn)具體的功能仲墨,完成代理的任務(wù)勾缭。
生成協(xié)議文件
代理傳值
新建一個協(xié)議,協(xié)議的名字一般是由“類名+Delegate”
@protocol ViewControllerBDelegate // 代理傳值方法
- (void)sendValue:(NSString *)value;
在需要用到的地方實現(xiàn)該協(xié)議