iOS获取类名NSStringFromClass 和 获取类NSClassFromString
来源:互联网 发布:python单行注释 编辑:程序博客网 时间:2024/05/29 18:45
一、获取类名 NSStringFromClass
NSString *selfClass = NSStringFromClass([self class]);
二、NSClassFromString用法
起因是看蓝牙demo的时候看到这个关键字的 就搜索了一下。。
+ (BOOL)isBluetoothSupported{
NSClassFromString是一个很有用的东西,尤其在进行iPhone toolchain的开发上。
正常来说,
id myObj = [[NSClassFromString(@"MySpecialClass") alloc] init];
和
id myObj = [[MySpecialClass alloc] init];
是一样的。但是,如果你的程序中并不存在MySpecialClass这个类,下面的写法会出错,而上面的写法只是返回一个空对象而已。
因此,在某些情况下,可以使用NSClassFromString来进行你不确定的类的初始化。
比如在iPhone中,NSTask可能就会出现这种情况,所以在你需要使用NSTask时,最好使用:
[[NSClassFromString(@"NSTask") .....]]
而不要直接使用[NSTask ...]这种写法。
NSClassFromString的好处是:
1 弱化连接,因此并不会把没有的Framework也link到程序中。
2不需要使用import,因为类是动态加载的,只要存在就可以加载。因此如果你的toolchain中没有某个类的头文件定义,而你确信这个类是可以用的,那么也可以用这种方法。
三、NSStringFromSelector
SEL
NSString
SEL anotherSel=NSSelectorFromString(方法名字的字符串);
在编译时设置变量为SEL变量最有效的方法就是@selector()指令。然而,在某些情况下,你可能需要在运行时转换一个字符串为一个selector。
第一行是直接在程序里面写上方法的名字,第2行是通过sel变量获取方法的名字。第三行是写上方法名字的字符串.
我们得到 SEL变量之后,可以通过下面的调用来给一个对象发送消息:
[对象 performSelector:SEL变量 withObject:参数1 withObject:参数2];
这样的机制增加了程序的灵活性,可以通过给一个方法传递sel参数,让这个方法动态的执行某一个方法,我们也可以通过配置文件制定需要执行的方法,程序读取配置文件之后把方法的字符串翻译成sel变量然后给相应的对象发送这个消息
从效率的角度上来说,执行的时候不是通过方法名字而是通过方法的ID来查找方法,由于整数的查找比匹配字符串快得多,所以这样可以在某种程序上提高执行的效率
原文链接 点击打开链接
- iOS 获取类名NSStringFromClass 和 获取类NSClassFromString
- iOS获取类名NSStringFromClass 和 获取类NSClassFromString
- iOS----NSClassFromString跟NSStringFromClass
- NSClassFromString和NSStringFromClass
- NSClassFromString和NSStringFromClass
- 使用NSClassFromString 获取不确定类
- ios获取对象类名
- IOS NSClassFromString(字符串)自动抓换成类名
- 获取类名和id名
- ios通过字符串获取类名
- ios 根据类名获取类名的属性
- ci获取当前控制器类名和方法名和PHP获取当前类名、函数名、方法名方法
- 获取实体类属性名和值
- 获取类名
- 获取类名
- Java 获取类名
- 反射获取类名
- PHP 获取类名
- UVa1586 Molar Mass
- poj3974_Palindrome_
- idea选择自己的包创建SSH项目
- Linux内核中断系列之中断的下半部(八)
- DAY6作业-百度登录框
- iOS获取类名NSStringFromClass 和 获取类NSClassFromString
- Lru cache算法以及他的锁的问题
- OpenStack安装与配置
- 动态规划为什么就是经典?
- BubbleSeekBar开源框架在andorid7.0无法适配的解决方案
- Node学习过程中遇到的一些小问题
- 使用Google的zxing组件识别二维码时,调整扫描区域和取景框的大小
- Easy 20 Same Tree(100)
- Android实现socket简单通讯总结