ios – 使用选择器和NSSelectorFromString将消息发送到对象

ios – 使用选择器和NSSelectorFromString将消息发送到对象,第1张

概述以下将传递respondsToSelector测试,但SIGABRT实际调用[viewController选择器]或[viewController action:selector].堆栈跟踪状态’NSInvalidArgumentException,原因: – [MyViewController选择器]:无法识别的选择器’. [viewController @selector(selector)] 以下将传递respondsToSelector测试,但SIGABRT实际调用[vIEwController选择器]或[vIEwController action:selector].堆栈跟踪状态’NSinvalidargumentexception,原因: – [MyVIEwController选择器]:无法识别的选择器’.

[vIEwController @selector(selector)]将导致编译错误(错误:在’selector’之前预期’:’).

当选择器是硬编码时,一切都很好.

如何通过选择器向对象发送消息

-(voID) notifyVIEwControllers:(Nsstring*) message{    if(!message) return;    SEL selector = NSSelectorFromString(message);    if(!selector) return;    NSArray* vIEwControllers = [self.tabbarController vIEwControllers];    if(!vIEwControllers) return;    for (UIVIEwController* vIEwController in vIEwControllers)    {        if(!vIEwController) continue;        if ([vIEwController respondsToSelector:selector]) {            // [vIEwController selector];            [vIEwController action:selector];        }    }}
解决方法
[self performSelector:@selector(notifyVIEwControllers:) withObject: message];
总结

以上是内存溢出为你收集整理的ios – 使用选择器和NSSelectorFromString将消息发送到对象全部内容,希望文章能够帮你解决ios – 使用选择器和NSSelectorFromString将消息发送到对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1098205.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存