</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 选项
未完!
网友评论