gpt4 book ai didi

Objective-C:如何执行 performSelector:@selector?

转载 作者:行者123 更新时间:2023-12-04 02:49:15 25 4
gpt4 key购买 nike

好吧,我正在创建一个自定义 SEL,例如:

NSArray *tableArray = [NSArray arrayWithObjects:@"aaa", @"bbb", nil];
for ( NSString *table in tableArray ){
SEL customSelector = NSSelectorFromString([NSString stringWithFormat:@"abcWith%@", table]);
[self performSelector:customSelector withObject:0];
}

我得到一个错误:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[Sync aaaWithaaa]:无法识别的选择器发送到实例

但如果我使用真实的方法名称运行它,它就会起作用!

[self performSelector:@selector(aaaWithaaa:) withObject:0];

如何解决?

最佳答案

您已经从字符串创建了选择器 - 将其传递给 performSelector: 方法:

[self performSelector:customSelector withObject:0];

编辑请注意,如果您的方法采用参数,那么您在从中创建选择器时必须使用冒号:

// Note that you may need colon here:
[NSString stringWithFormat:@"abcWith%@:", table]

关于Objective-C:如何执行 performSelector:@selector?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10073824/

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