借用 object_getClass 窥测神器

/** 
 * 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)是 NSArrayNSMutableArray 在运行时的内部表示,反映了它们的实际类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

依旧风轻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值