其做用至關於函數指針,如今我看到的大多說用法都是在調用某些函數須要傳遞一個 函數指針 參數時,使用@selector。它會在當前類裏面查找selector後面所跟的函數,返回一個SEL類型的值。函數
SEL變量的執行.用performSelecor方法來執行.spa
[對象 performSelector:SEL變量 withObject:參數1 withObject:參數2];指針
在調用respondsToSelector:@selector(method)時,這個method只有在該方法存在參數時須要 ":",若是該方法不須要參數就不須要加這個冒號。不然,編譯不會報錯,只是執行返回的值不對。固然若是方法有多個參數,須要多個冒號,參數有名稱的須要帶上參數名稱。orm
如:有以下方法:對象
-(NSString*)toXmlString;blog
此時調用相似於:get
[self respondsToSelector:@selector(toXmlString)]博客
若是toXmlString方法的定義爲:it
-(NSString*)toXmlString:(NSString*)prefix;編譯
那麼調用就必須加上冒號,如:[self respondsToSelector:@selector(toXmlString:)]
本文出自 「人生得意須盡歡」 博客,請務必保留此出處http://no001.blog.51cto.com/1142339/643237