生活随笔
收集整理的這篇文章主要介紹了
蓝懿学习之考试受挫
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
考完試了才發現自己之前不清晰的地方還有好多。。。
協議選擇器
?????-協議的引用指向一個協議
??????????Protocol?*p?=?@protocol(NSCopying);
?????-可以判斷一個類是否遵循了某個協議
?????BOOL?b?=?[Student?conformsToProtocol:p];
1、協議用到的情況:某個類有一個實例方法,這個實例方法對所傳過來的對象,限制其必須實現了某個特定的方法,而對傳過來的對象類型沒有限制。
2、格式
協議名:@protocol?協議名??????協議名命名一般:類名+Delegate。
協議內容:特定的某方法
具體舉例:
①
Aa類中得實例方法是具有協議限制的。
Bb類是一個普通類。
②
Aa.h中:
//協議寫法?
@protocol?AaDelegate?<NSObject>
//協議內容
-(void)play;
@end
@interface?Aa?:NSObject
//傳染的對象?遵守協議
-(void)playWithObject:(id<AaDelegate>)anyobject;
@end
Aa.m中寫好帶協議的實例方法
-(void)playWithObject:(id<AaDelegate>)anyobject{
????[anyobjectplay];
}
③
當在ViewController中引入Aa?Bb?類。
分別創建對象。Aa?類對象,調用實例方法把Bb類對象傳入時報警告:要求Bb?類對象必須遵守Aa?類中實例方法的協議。
需要在Bb類的Bb.h:
引入協議所在類
#import"Aa.h"
讓Bb類遵守協議:
@interface?Bb?:NSObject<AaDelegate>
在Bb.h中實現協議內容。
總結
以上是生活随笔為你收集整理的蓝懿学习之考试受挫的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。