编程中遇到的小错误


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

阅读原文

xcode提示某个类引用不明确

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

编程中遇到的小错误_第1张图片
reference is ambigous.png

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

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

编程中遇到的小错误_第2张图片

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

编程中遇到的小错误_第3张图片
编程中遇到的小错误_第4张图片

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

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

编程中遇到的小错误_第5张图片

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

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

一般来讲是 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 选项

未完!

你可能感兴趣的:(编程中遇到的小错误)