-(BOOL) isKindOfClass: classObj 用來(lái)判斷是否是某個(gè)類或其子類的實(shí)例
-(BOOL) isMemberOfClass: classObj 用來(lái)判斷是否是某個(gè)類的實(shí)例
-(BOOL) respondsToSelector: selector 用來(lái)判斷是否有以某個(gè)名字命名的方法(被封裝在一個(gè)selector的對(duì)象里傳遞)
+(BOOL) instancesRespondToSelector: selector 用來(lái)判斷實(shí)例是否有以某個(gè)名字命名的方法. 和上面一個(gè)不同之處在于, 前面這個(gè)方法可以用在實(shí)例和類上栅表,而此方法只能用在類上.
使用[[UIApplication sharedApplication] keyWindow]查找應(yīng)用程序的主窗口對(duì)象
respondsToSelector判斷是否實(shí)現(xiàn)了某方法
conformsToProtocol:@protocol()是用來(lái)檢查對(duì)象是否實(shí)現(xiàn)了指定協(xié)議類的方法
在代理調(diào)用是谐鼎,檢查其代理是否符合協(xié)議辜膝,或者使用 respondsToSelector 檢查對(duì)象能否響應(yīng)指定的消息,
是避免代理在回調(diào)時(shí)因?yàn)闆](méi)有實(shí)現(xiàn)代理函數(shù)而程序崩潰的一個(gè)有效的方式
利用NSObject類中的methodForSelector:方法茶宵,可以獲得一個(gè)指向方法實(shí)現(xiàn)的指針,并可以使用該指針直接調(diào)用方法實(shí)現(xiàn),當(dāng)一個(gè)消息要被發(fā)送給某個(gè)對(duì)象很多次的時(shí)候,可以直接使用methodForSelector:來(lái)進(jìn)行優(yōu)化,其中匙瘪,methodForSelector:是由Cocoa Runtime System提供的,而不是Objective-C本身的語(yǔ)言特性蝶缀。這里需要注意轉(zhuǎn)換過(guò)程中函數(shù)類型的正確性丹喻,包括返回值和參數(shù),而且這里的前兩個(gè)參數(shù)需要顯示聲明為id和SEL翁都。