美文网首页
编程中遇到的小错误

编程中遇到的小错误

作者: 学生陈希 | 来源:发表于2016-04-30 00:07 被阅读56次

    </br> 此篇文章用来记录一些自己编程中遇到的一些小错误!持续更新中!!

    阅读原文

    xcode提示某个类引用不明确

    当我调用某个方法的时候,xcode告诉我不能够正常的调用

    reference is ambigous.png

    感觉很奇怪,明明我发现有这个枚举类型,为何还是引用不明确呢?

    于是我就点击这个kPayFail ,果然发现了异常之处

    竟然有两个地方都定义了,这同一个名称,于是我分别点进去查看。

    分析原因:因为本工程我使用了多个工程进行嵌套使用,难免就要指定头文件的搜索路径,于是乎,编译器搜索到不同的.h文件中都有这个“kPayFail”,所以这时候编译器就懵逼了。

    解决办法:调用的时候在前面加上类型的名称(c++ 11 之后开始能够这么使用,成功的解决了有相同的变量名的时候遇到的尴尬问题了)

    提示:这里是枚举类型,不是像访问结构体那样使用"->"(老司机的提醒真是有用)

    访问已经释放掉的内存,引起程序崩溃

    一般来讲是 EXE_BAD_ACCESS 错误

    查看详细的信息我们可以这么设置

    点击XCode中的Product--> Scheme --> Edit Scheme --> 选择Run , 勾选Enable Zombie Objects

    这么做之后我们一般会得到如下形式的错误信息:

    xxx, message sent to deallocated instance xxx .

    告诉我们访问了一个已经释放掉内存地址,并且告诉了我们内存地址位置是xxx。

    接下来,了解更详细的错误内容,需要我们这么做

    使用模拟器运行项目,并记住项目名称,比如:demo

    记录崩溃的内存地址:比如:0x7fe23979d670

    打开活动监视器,找到该项目的pid,并且记录下来。

    打开终端。

    输入:sudo malloc_history 5536 0x7fe23979d670 (其中:5536是该项目对应进程的pid, 0x7fe23979d670是崩溃的内存地址)

    查看打印出来的详细信息,找出原因。

    提示:程序找到错误了之后,记得关闭我们在上面勾选的 Enable Zombie Objects 选项

    未完!

    相关文章

      网友评论

          本文标题:编程中遇到的小错误

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