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

推荐阅读更多精彩内容

  • 控制器的创建 怎么自己通过storyboard创建控制器(空项目),之前都是系统加载 storyboard,帮我们...
    指尖书法阅读 284评论 0 0
  • 1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现cl...
    1c9b6c03f595阅读 1,532评论 2 50
  • UIViewController 的生命周期答:来源:http://www.cnblogs.com/dahe007...
    IreneWu阅读 326评论 1 2
  • 在2016的最后一天晚上,我真的很想说说他。我和朋友说我想让自己沉淀一下,看看我自己的内心想的到底是什么,我从两三...
    安梓璇呐阅读 119评论 0 1
  • 我想要这样活着: 找一汪湖与宁静 寻一片蓝天与自由 遇一位恰好伊人 告诉这一切 岁月静好 对桃源世界倾慕 对朝霞黄...
    树壹阅读 130评论 1 4