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方法是来肯定对象是不是某一个类的成员

相关文章
相关标签/搜索