Protocol(協議)
一個協議是由一組方法組成,這組方法分為兩類,@required:必須實現的方法 ,@optional:可選 實現的方法(可以全部都不實現)。一個類遵守某個協議,則相當于聲明了一系列該協議中定義的方法。若一個類遵守某個協議,則可以視為該類具有某種功能。而如果一個類定義了某個協議,則是該類希望別的類來替它實現的功能。
Delegate(委托)
委托和協議是有著緊密的聯系的。類A自己不具備某項功能,而委托類B來實現該項功能,代理類(類B)承擔實際的功能。往往這種情況里,類A定義了協議和協議里的方法(即希望類B完成的功能),而類B遵守了該協議,實現具體的功能,完成代理的任務。
生成協議文件
1.png
2.png
代理傳值
新建一個協議,協議的名字一般是由“類名+Delegate”
@protocol ViewControllerBDelegate // 代理傳值方法
- (void)sendValue:(NSString *)value;
在需要用到的地方實現該協議