/**
* Returns the class of an object.
*
* @param obj The object you want to inspect.
*
* @return The class object of which \e object is an instance,
* or \c Nil if \e object is \c nil.
*/
OBJC_EXPORT Class _Nullable
object_getClass(id _Nullable obj)
OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
创建一个 NSArray
对象和一个 NSMutableArray
对象,并分别对其执行 object_getClass
方法。
#import <Foundation/Foundation.h>
#import <objc/runtime.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 创建 NSArray 对象
NSArray *array = @[@"one", @"two", @"three"];
// 创建 NSMutableArray 对象
NSMutableArray *mutableArray = [NSMutableArray arrayWithArray:@[@"one", @"two", @"three"]];
// 获取 NSArray 对象的类
Class arrayClass = object_getClass(array);
NSLog(@"Class of NSArray object: %@", arrayClass);
// 获取 NSMutableArray 对象的类
Class mutableArrayClass = object_getClass(mutableArray);
NSLog(@"Class of NSMutableArray object: %@", mutableArrayClass);
}
return 0;
}
输出
执行上述代码后,你将看到类似以下的输出:
Class of NSArray object: __NSArrayI
Class of NSMutableArray object: __NSArrayM
这些类名(如 __NSArrayI
和 __NSArrayM
)是 NSArray
和 NSMutableArray
在运行时的内部表示,反映了它们的实际类型。