集成IOS Push SDK后,如果控制台打印出以下log:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您提到的这个问题和解决方法是针对iOS应用开发中集成第三方SDK时可能遇到的一个常见错误。具体来说,当您在项目中集成阿里云的iOS Push SDK后遇到类似错误信息,这通常意味着编译器未能正确识别或链接到某些Objective-C类别(Category)。
为什么需要添加-ObjC标志?
Objective-C类别是一种扩展原有类功能的方式,不改变原有类的定义。但是,由于类别并非编译器必须加载的部分(不像直接在.m文件中实现的方法),因此在某些情况下,编译器默认可能不会加载所有的类别文件。这就会导致运行时找不到某些通过类别扩展的方法,从而抛出“unrecognized selector sent to instance”这样的错误。
-ObjC标志的作用:
如何添加-ObjC标志:
-ObjC
(注意大小写)。完成以上步骤后,重新编译您的项目,上述因类别未加载导致的错误应该会得到解决,阿里云Push SDK能够正常工作了。