您的位置:首页 > 移动开发 > IOS开发

iOS NSClassFromString,NSSelectorFromString,isKingO

2016-03-01 00:00 405 查看

iOS NSClassFromString,NSSelectorFromString,isKingOfClass

1. NSClassFromString
  这个方法判断类是否存在,如果存在就动态加载的,不存为就返回一个空对象;
   id myObj = [[NSClassFromString(@"MySpecialClass") alloc] init];
  正常情况下等价于:
id myObj = [[MySpecialClass alloc] init];
但是,如果你的程序中并不存在MySpecialClass这个类,下面的写法会出错,而上面的写法只是返回一个空对象而已。
  优点:
弱化连接,因此并不会把没有的Framework也link到程序中。
不需要使用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方法是来确定对象是否是某一个类的成员
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: