生活随笔
收集整理的這篇文章主要介紹了
                                
蓝懿学习之考试受挫
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
 
                                
                            
                            
                             考完試了才發現自己之前不清晰的地方還有好多。。。
 
 
 
 協議選擇器
 
 
 
 ?????-協議的引用指向一個協議
 
 
 
 ??????????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中實現協議內容。
                            總結
                            
                                以上是生活随笔為你收集整理的蓝懿学习之考试受挫的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                            
                                如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。