gpt4 book ai didi

ios - 从选择器变量中查找参数类/类型 - Objective-C

转载 作者:搜寻专家 更新时间:2023-10-30 20:18:00 25 4
gpt4 key购买 nike

我正在研究一个涉及将选择器作为变量发送以供稍后使用的类。选择器需要接受一个参数,一个 BOOL 值。像这样执行:

IMP imp = [ob methodForSelector:selector];
void (*func)(id, SEL, BOOL) = (void *)imp;
func(ob, selector, YES);

如果有人试图使用与 BOOL 不匹配的变量设置选择器,我想返回一个错误。有没有一种方法,当我接收到选择器时,我可以检查它的参数是否是一个 BOOL,或者一般来说,传递了什么类或类型的参数?

为什么?

我正在我的一个类(class)中设置一个准通知中心,这样我就可以轻松地添加观察员并更好地控制信息分发。

最佳答案

查看方法签名:

NSMethodSignature * sig = [ob methodSignatureForSelector:selector];
NSAssert(0 == strcmp(@encode(BOOL), [sig getArgumentTypeAtIndex:2]),
@"Method must take a BOOL as its sole argument.");

关于ios - 从选择器变量中查找参数类/类型 - Objective-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22291680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com