美文网首页
iOS解决objc_msgSend报错问题

iOS解决objc_msgSend报错问题

作者: __life__ | 来源:发表于2017-10-25 11:58 被阅读0次

1.检查是否引入头文件 #import<objc/message.h> //runtime消息机制

2.如果成功引入头文件编译还是报错, 以下有两个解决方案供选择:

  (1).在项目配置文件 -> Build Settings -> Enable Strict Checking of objc_msgSend Calls 这个字段设置为 NO(默认为YES)

  (2)由于objc_msgSend函数本身是无返回值无参数的函数, 所以要给它强制转换类型, 代码如下:

  Person *person = [[Person alloc]init];

  ((void (*) (id, SEL)) (void *)objc_msgSend)(person, sel_registerName("say"));

  ((void (*) (id, SEL)) (void *)objc_msgSend)(person, @selector(say));​

注: @selector(say) 和 sel_registerName("say") 这两个其实是一样的 都是SEL类型

相关文章

网友评论

      本文标题:iOS解决objc_msgSend报错问题

      本文链接:https://www.haomeiwen.com/subject/ufkqpxtx.html