Xcode 9 报错 unrecognized selector sent to instance

按照正常情况下,报错

unrecognized selector sent to instance 地址符

都是因为野指针,对象提前销毁,或者是调用的方法没有,或者是 unmutable 对象调用了 mutable 类的方法,导致出错,对于一般的 iOSer 来说,只要细心一点都能够很快的解决这个问题,但是自从升级到 Xcode 9 ,发生这个问题的因素又增加了一条,而且由于惯性的原因,可能一般人不会太关注。

一、使用 Cocoapods 做项目包管理器

  正常情况下,只要在 pod 文件中正确引用,在项目中就能够直接使用,但是在 Xcode 中会出现,通过 cocoapods 应用之后,Build 的时候没有出现问题,但是在 Run 的时候,因为不能找到执行文件(.m)直接 Crash。

二、直接向项目中添加文件

  有时候可能会直接向项目总拖拽文件,之前的时候,拖拽完也是能够直接使用的,但是在 Xcode 9 时代大部分情况下不能够使用。我之前就是将自己之前写好的 Category 文件拖拽进去,在 Build 阶段一直都没有问题,但是在 Run 的时候,找不到方法和属性而 Crash,我以为是苹果更新了 Category 的属性,我没有关注而导致的问题,找了好一会,最后才发现也是 Xcode 的 bug,并没有直接将执行文件添加到项目中去。

总结:

  解决有 Xcode 9 的 bug 引起的以上两种不正常的 Crash 的方法如下:

在 Build Phases 中的 compile Sources 中点击下方加号,添加对应的 .m 文件,解决由于 Xcode 9 引起的找不到方法的bug。

PS

  其他的因为找不到地址而引起的 bug,还希望各位 iOSer 细心 review 自己的代码,争取尽量少写 bug。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值