自己的工程以前运行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"));