iOS8下vc不能找到对应xib的问题


起因
今天测试提了一个bug, 大致内容如下:

设备: iPhone5s 、系统:iOS8.3
问题: 点击cell进入某个子页面,直接闪退 

经过

看到这个bug第一反应: 我不会搞出这么明显的错误吧!
通过与测试沟通才知道是在特定的设备和系统下才发生的(iPhone5s、iOS8.3),这就尴尬了,第一反应是我调用了iOS8之后的api才会造成crash。

借来“问题设备”,加一个全局断点希望定位到问题行,奈何我怎么挣扎crash始终停在main函数。无奈,在视图的生命周期方法中依次加断点,结果发现,他丫的还未进入viewdidLoad的断点就已经crash了。

再次寻寻觅觅,当我给vc添加loadView方法后并打上断点,发现点击cell是会停到loadView中的断点。


结果
反复思考,我想到是不是vc没有找到相应的xib导致系统loadView方法执行之后不会进入viewdidLoad。然后我检查xib,如图:

Snip20170213_14.png

因此我猜想:在iOS8下,当xib中有多个view文件是,不能识别到哪一个是系统loadview时需要的view。

当我将init方法换成initWithNibName,果然不再crash了

2333。。。问题得以解决,看来iOS9后苹果对viewController的init方法进行过一些优化,才能在xib中有多个view时还能找到这个xib

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,309评论 30 472
  • 1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现cl...
    以德扶人阅读 7,385评论 2 50
  • UIViewController 的生命周期答:来源:http://www.cnblogs.com/dahe007...
    IreneWu阅读 3,805评论 1 2
  • 在2016的最后一天晚上,我真的很想说说他。我和朋友说我想让自己沉淀一下,看看我自己的内心想的到底是什么,我从两三...
    安梓璇呐阅读 2,047评论 0 1
  • 我想要这样活着: 找一汪湖与宁静 寻一片蓝天与自由 遇一位恰好伊人 告诉这一切 岁月静好 对桃源世界倾慕 对朝霞黄...
    树壹阅读 1,313评论 1 4