现在的位置: 首页 > 综合 > 正文

xcode6使用objc_msgsend报错问题

2018年02月13日 ⁄ 综合 ⁄ 共 560字 ⁄ 字号 评论关闭

自己的工程以前运行ok。在xcode升级xcode6后,突然objc_msgsend报错

例如:

 id sharedConfigCenter = objc_msgSend(networkMonitorClass,NSSelectorFromString(@"shareInstance"));

系统抛出一个语法错误:Too
many arguments to function call, expected 0, have 2。

解决方法:

    

 id sharedConfigCenter = objc_msgSend(networkMonitorClass,NSSelectorFromString(@"shareInstance"));

改为

      id (*typed_msgSend)(id, SEL) = (void *)objc_msgSend;
            id sharedConfigCenter  = typed_msgSend(networkMonitorClass, NSSelectorFromString(@"shareInstance"));

或者 :

  id sharedConfigCenter = ((id (*)(id, SEL))objc_msgSend)(networkMonitorClass, NSSelectorFromString(@"shareInstance"));

抱歉!评论已关闭.