美文网首页
iOS中经常抛出的异常

iOS中经常抛出的异常

作者: 小屋新 | 来源:发表于2017-07-20 20:03 被阅读23次

    在开发过程中,经常会遇到各种各样崩溃的问题,我现在根据自己平时遇到的各种异常,进行一个汇总,以后再遇到同样的问题时可以帮助自己快速解决,也可以给一些刚入门的宝宝提供一些方法,喜欢记得点赞呦,以后会持续更新,正文如下:


    一、有关于路径的异常

    最近接手了一个新项目,然后,接过来之后各种问题都出来了,很懵逼,但是得一点一点解决呀,仔细看了看报的错,发现有几个是路径的问题,现在,在这里更新一下异常,方便以后更快的解决问题。
    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就可以了
    如下图:

    978EB588-1A1B-4A08-B04C-84A632784BFA.png

    搞定!

    相关文章

      网友评论

          本文标题:iOS中经常抛出的异常

          本文链接:https://www.haomeiwen.com/subject/knujkxtx.html