在开发过程中,经常会遇到各种各样崩溃的问题,我现在根据自己平时遇到的各种异常,进行一个汇总,以后再遇到同样的问题时可以帮助自己快速解决,也可以给一些刚入门的宝宝提供一些方法,喜欢记得点赞呦,以后会持续更新,正文如下:
一、有关于路径的异常
最近接手了一个新项目,然后,接过来之后各种问题都出来了,很懵逼,但是得一点一点解决呀,仔细看了看报的错,发现有几个是路径的问题,现在,在这里更新一下异常,方便以后更快的解决问题。
1、
// 找不到pch文件
/Users/houchunjiao/Desktop/智慧物流/SaaS 移动端汇总/SaaS_Driver_iOS/SaaSDriver/<built-in>:1:10: '/Users/huxiao-mac/Desktop/司机端/SaaSDriver/SaaSDriver/PrefixHeader.pch' file not found
我当时一看,还以为是文件没有传过来呢,搜了一下我的工程,发现.pch 文件是存在的,那是因为什么呢,我又去找到preject里面搜了一下prefix header,发现路径不对,具体操作流程:去工程配置里面选择Predict-->Build Settings,选择all和combined,然后我们搜索prefix header,就找到了放pch的路径,如图
找到pch的路径现在呢,我们需要修改pch的路径,怎么办呢,我们可以看到,是PrefixHeader.pch这个pch文件找不到,我们可以双击打开prefix header,出现一个对话框,把这个文件直接拖拽过来就会出现一个路径,如图:
拖拽文件此时,这个路径显示的是绝对路径,在我们的Mac电脑上可以使用,但是如果是多人开发,在别人的电脑上就不能使用了,所以我们需要把绝对路径,改成相对路径,我们只需要把工程的文件夹之前的给删掉,用$(RSCROOT)来代替就变成相对路径了,然后把Precompile Prefix Header改为No,如图:
修改成功2、第二个路径问题是找不到头文件了
// 找不到头文件
/Users/houchunjiao/Desktop/智慧物流/SaaS 移动端汇总/SaaS_Driver_iOS/SaaSDriver/SaaSDriver/Class/AppDelegate/AppDelegate.m:11:9: 'AlipaySDK/AlipaySDK.h' file not found
这个也是路径问题,我去找到存放Alipay路径的地方,如图
找到存放alipay路径的地方点开之后发现有两个alipay的路径,我们只需要删掉找不到的那个就可以了,或者都删了,按照拖pch的方法重新再拖一下就好了,举一反三,基本上,只有工程中有着文件,然后是路径的问题,我们都可以按照这种方式来解决。
二、有关于storyboard的异常
1、这一个是我在使用storyboard的时候,抛出的异常
Application tried to push a nil view controller on target <ClientNavigationController: 0x7fb3da0c2a00>.
2017-07-20 15:28:34.388 Client[9972:184249] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil’
这个是我在使用如下代码的时候抛出的异常
UIViewController *controller = [sb instantiateInitialViewController];
此时是因为我在storyboard中并没有设置它的入口,我们只要在storyboard中勾选is initial view controller ,如下图
FF1B0643-9668-4D63-8543-EB8D7238AB40.png这样就不会报错了
2、有时候,我们没有打开全局异常断点的时候,程序是可以正常运行的,但是我们打开全局断点的时候就会抛出一个异常,进入main函数,此时我们也不知是哪里的问题,如下图:
屏幕快照 2017-07-20 下午7.45.09.png
此时怎么办呢,下面也没有抛出原因,此时,我们可以点击一下运行的按钮,然后等待输出平台输出抛出异常的原因。如下图:
屏幕快照 2017-07-20 下午7.49.51.png我这个异常是因为我在使用storyboard的时候在运行时中添加了两个属性,如下图:
052E2949-1BF1-48BE-82CD-ACD1EC5407ED.png只要把这个属性删除了就好了,我们可以在storyboard中勾选clip to bounds就可以了
如下图:
搞定!
网友评论