NSClassFromString isKindOfClass

1:NSClassFromString

运行时特性:  这个方法判断类是否存在,如果存在就动态加载的,不存为就返回一个空对象;

优点:           不需要使用#import,因为类是动态加载的,只要存在就可以加载。因此如果你的toolchain中没有某个类的头文件定义,而你确信这个类是可以用的,那么也可以用这种方法。

2:isKindOfClass

我们也可以使用isKindOfClass来检查一个对象是否是一个类的成员

3:isMemberOfClass

确定对象是否是某一个类的成员

4:NSSelectorFromString

这个方法是NSClassFromString方法的补充,也是动态加载实例方法。

  SEL sel = NSSelectorFromString(@"doSomething:")    //注意这个冒号,说明方法带有参数

  if  ([object respondsToSelector:sel]) {

  [object performSelector:sel withObject:color]; //注意如果有两个参数,使用两个withObject:参数;

  }

时间: 2024-10-23 18:26:16

NSClassFromString isKindOfClass的相关文章

NSClassFromString 和 遍历UIView获取她所在的UIViewController的tips

一.NSClassFromString是NSObjCRuntime.h的方法 FOUNDATION_EXPORT Class __nullable NSClassFromString(NSString *aClassName); Description:Obtains a class by name.The name of a class.Parameters:aClassName The name of a classReturns:The class object named by aCla

ios NSClassFromString 返回空指针

今天新建了一个 iOS 新工程,用到了 NSClassFromString 方法创建类, 无奈总是返回空指针. 花了一下午时间检查代码是否有写错,配置是否有问题,搜索这个问题该怎么解决.无奈都没有什么理想的结论.到了晚上的时候看到一个帖子说 other link flags 里面增加-all_load 属性.我一想,这不靠谱啊. 我以前都没有用过这个属性.我又想到这个工程是新建的,是不是这里面少了什么配置.比较了下以前的工程.增加了-ObjC 这个属性, 再跑一下,成功创建了. 在这里我把这个解

isKindOfClass,isMemberOfClass

- (BOOL)isKindOfClass:(Class)aClass; - (BOOL)isMemberOfClass:(Class)aClass; 特点: 1.isKindOfClass   判断是否是这个类(包括其父类及根类)或者这个类的子类的实例 2. isMemberOfClass  判断是否是这个类的实例 3.二者都可以判断是否是这个类

OC静态库里NSClassFromString得到nil的解决

如果你在静态库中有从类名反射回类的代码, 如下: NSString *myClassStr = @"myClass"; Class myClazz = NSClassFromString(myClassStr); if (myClazz) { id myClassInit = [[myClazz alloc] init]; } 有时候(经常)会出现得到了Class为nil的情况, 网上搜索, 一般是这么说的: The class object named by aClassName,

isMemberOfClass和isKindOfClass的区别

1.isMemberOfClass:作用:用于判断一个对象是否属于当前这个类 Person *rose = [[Person alloc] init]; if ([rose isMemberOfClass:[Person class]]) { NSLog(@"rose是person类创建的"); } if ([rose isMemberOfClass:[NSObject class]]) { NSLog(@"rose是NSObject类创建的");//不执行 } 2

(转)Objective-C语法之动态类型(isKindOfClass, isMemberOfClass,id)等

本文转自http://blog.csdn.net/totogo2010/article/details/7714960 对象在运行时获取其类型的能力称为内省.内省可以有多种方法实现. 判断对象类型 -(BOOL) isKindOfClass: classObj判断是否是这个类或者这个类的子类的实例 -(BOOL) isMemberOfClass: classObj 判断是否是这个类的实例 ps:本篇新建的类主要用于熟悉本篇内容设计,未考虑内存管理因素. 我们试试这两个方法的使用. 1.新建Per

isKindOfClass和isMemberOfClass

https://github.com/ming1016/study/wiki/Objc-Runtime 先看看isKindOfClass和isMemberOfClass在Object.mm中的实现 - (BOOL)isKindOf:aClass { Class cls; for (cls = isa; cls; cls = cls->superclass) if (cls == (Class)aClass) return YES; return NO; } - (BOOL)isMemberOf:

isKindOfClass isMemeberOfClass 的区分

isKindOfClass If you use such constructs in your code, you might think it is alright to modify an object that in reality should not be modified. Doing so might then create problems for other code that expected the object to remain unchanged. If the r

OC中NSClassFromString()与NSStringFromClass()的用法及应用场景

1.NSClassFromString()利用一个字符串创建一个类,我是在标签控制器中 UITabBarController中创建它的子控制器中使用的 1 - (void)viewDidLoad { 2 [super viewDidLoad]; 3 self.view.backgroundColor = [UIColor whiteColor]; 4 5 [self addChildViewControllerWithClassName:[ZSHomeViewController descrip