iOS NSClassFromString,NSSelectorFromString,isKingO

iOS NSClassFromString,NSSelectorFromString,isKingOfClass

1. NSClassFromString spa

  這個方法判斷類是否存在,若是存在就動態加載的,不存爲就返回一個空對象; orm

   id myObj = [[NSClassFromString(@"MySpecialClass") alloc] init]; 對象

  正常狀況下等價於: ci

id myObj = [[MySpecialClass alloc] init]; it

      可是,若是你的程序中並不存在MySpecialClass這個類,下面的寫法會出錯,而上面的寫法只是返回一個空對象而已。 form

  優勢: import

弱化鏈接,所以並不會把沒有的Framework也link到程序中。 object

不須要使用import,由於類是動態加載的,只要存在就能夠加載。所以若是你的toolchain中沒有某個類的頭文件定義,而你確信這個類是能夠用的,那麼也能夠用這種方法。 程序

 

2. NSSelectorFromString 方法

  這個方法是上個方法的補充,也是動態加載實例方法。

  SEL sel = NSSelectorFromString(@"doSomethingMethod:")//注意這個冒號,說明方法帶有參數

  if([object respondsToSelector:sel]) { 

      [object performSelector:sel withObject:color]; //注意若是有兩個參數,使用兩個withObject:參數;

  }

3. isKindOfClass

  isKindOfClass 咱們也能夠使用isKindOfClass來檢查一個對象是不是一個類的成員


4. isMemberOfClass

  isMemberOfClass方法是來肯定對象是不是某一個類的成員

相關文章
相關標籤/搜索