ObjC类的常用方法
- ObjC类的常用方法
- 获取Class名字=类名
- 概述
NSStringFromClass(someClass)
=>NSString*
class_getName(someClass)
=>const char*
[someInstance className]
=>NSString*
object_getClassName(someId)
=>const char*
- 详解
- 概述
- 获取父类
- 概述
[xxx superclass]
class_getSuperclass(xxx)
- 详解
- 概述
- 获取Class
- 适用于=输入是:
char *
objc_getClass
- 定义:
id objc_getClass(const char *name);
- 含义
- 传入参数:字符串=类名
- 返回值:
Class
- 举例
- 举例1
(lldb) po object_getClass("YTNetworkRequestTrackerImpl") 0x00000004654e5458
- 举例2
(lldb) expr id $protoClass = (id)objc_getClass("GPBMessage") (lldb) po $protoClass GPBMessage
- 举例3
(lldb) po [objc_getClass("GPBMessage") parseFromData: newHttpBodyData] <GPBMessage 0x287b4f4d0>: { # --- Unknown fields --- 1: "\n\233\022\n\005zh-CN\022\002CNR\002CNb\005Applej\tiPhone9,1\200\001\005\212\001\007 ...
- 举例4
Class LSApplicationProxy_class = object_getClass(@"LSApplicationProxy");
- 举例1
- 定义:
- 适用于=输入是:id
object_getClass
- 定义:
Class object_getClass(id obj);
- 含义
- 传入参数:obj可能是instance对象、class对象、meta-class对象
- 返回值
- 如果是instance对象,返回class对象
- 如果是class对象,返回meta-class对象
- 如果是meta-class对象,返回NSObject(基类)的meta-class对象
- 定义:
- 适用于=输入是:Instance=Object
- class属性
- 用法:
[obj class]
- 返回:
Class
- 用法:
- class属性
- 适用于=输入是:
- 判断是否是某个类
- 适用于=输入是:
Instance
=Object
isKindOfClass
- 定义
- 针对
NSObject
的:- (BOOL)isKindOfClass:(Class)aClass;
- 针对
- 用法
BOOL isSameClass = [someObjcInstance isKindOfClass: SomeClass]
- 定义
- 适用于=输入是:
- 获取Class名字=类名