iOS运行时API

本文深入探讨Objective-C runtime中的方法选择和动态调用机制,包括NSSelectorFromString用于根据字符串获取SEL,class_respondsToSelector判断类是否响应某个方法,performSelector动态调用方法,respondsToSelector检查对象是否实现特定方法,以及如何使用NSClassFromString获取Class,class_addMethod添加方法,method_exchangeImplementations实现方法交换。这些知识点揭示了Objective-C的动态特性和运行时的强大能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. NSSelectorFromString:()

根据字符串获取sel;
SEL sel = NSSelectorFromString(@“surfaceUpdated:”);

2.class_respondsToSelector()

判断当前类是否存在SEL,返回值bool
class_respondsToSelector(self.class, sel)

3.performSelector

详细参考简书介绍
动态调用方法
performSelector是运行时系统负责去找方法的,在编译时候不做任何校验;如果直接调用编译是会自动校验。

4.respondsToSelector

在运行时判断对象是否响应此方法

5. NSClassFromString

根据字符串获取Class

6.class_respondsToSelector

判断某个类是否有某个实例方法,有则返回YES,否则返回NO

7. respondsToSelector

来判断某一个方法时候实现

8.class_getInstanceMethod

得到类的实例方法

9.class_getClassMethod

得到类的类方法

10. BOOL class_addMethod(Class cls, SEL name, IMP imp, const char *types)

给类添加一个新的方法和该方法的具体实现
举个🌰

BOOL didAddMethod = class_addMethod(_FDDelegate,
                                                    newFDDelegateSelector,
                                                    method_getImplementation(originalMethod),
                                                    method_getTypeEncoding(originalMethod));

11. method_exchangeImplementations

方法交换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值