7.调试技巧:
1.开启NSZombieEnabled:
方式一:
Xcode4 Product -> Edit Scheme-> Arguments, 然后将点击”加号”, 将 NSZombieEnabled 参数加到Environment Variables 窗口中, 后面的数值写上 ”YES”.
方式二:
Xcode4 菜单 Product -> EditScheme -> Diagnostics 设置窗口中直接勾上Enable ZombieObjects 即可,Xcode 可用 cmd+shift+< 进到这个窗口。
2.调用输出方法执行顺序.
有时程序崩溃根本不知错误发生在什么地方。比如程序出现EXEC_BAD_ACCESS的时候,虽然大部分情况使用设定NSZombieEnabled环境变量可以帮助你找到问题的所在,但少数情况下,即使设定了NSZombieEnabled环境变量,还是不知道程序崩溃在什么地方。那么就需要使用下列代码进行帮助了:
|
#ifdef _FOR_DEBUG_
- ( BOOL )respondsToSelector : ( SEL )aSelector { printf ( "SELECTOR: %s\n", [NSStringFromSelector (aSelector )UTF8String ] ); return [super respondsToSelector :aSelector ]; } #endif |
你需要在每个object的.m或者.mm文件中加入上面代码,并且在other c flags中加入-D _FOR_DEBUG_(记住请只在Debug Configuration下加入此标记)。这样当你程序崩溃时,Xcode的console上就会准确地记录了最后运行的object的方法。
3.使用Object Allocations
1.Run in Performance tool ‘Object Allocations’
2.如图示:
6..升级xcode 4.5,真机测试中出现如问题:Could not instantiate class named NSLayoutConstraint
原因:设置了xib自动布局.
解决方法:选中xib,在属性面板第一个选项卡:将interface builder document 中间use autolayout 复选框的勾去掉.
5. 添加SenTestingKit.framework后报错如下:
dyld:Librarynot loaded:@rpath/SenTestingKit.framework/Versions/A/SenTestingKit
Referencedfrom:/Users/turner/Library/ApplicationSupport/iPhone Simulator/5.1/Applications/798C5368-9BE2-4697-916B-37111953F2C8/EISElasticImage.app/EISElasticImage
Reason: image not found
(lldb)
解决办法:在项目/targets/link binary with libary: 把改类库的可选属性:requried 改为optional
4. 使用Hpple时解析html,添加libxml2 框架后,编译出现: "libxml/tree.h" header file not found.
解决办法: 这是由于没有添加头文件路径所致. 点击项目>>targets>> build Setting>>search paths 给header search paths 添加一个值:${SDKROOT}/usr/include/libxml2
3. Provisioning profile XXXX can't be found"
解决办法:这时候,先copy那行出错信息,然后关闭这个项目,打开finder到你的项目文件xxxx.xcodeproj上面按鼠标右键,选择Show Package Contents菜单,在新打开的finder的,找到project.pbxproj,使用一个文本edit打开它,用查找功能找到所有的有那行编码的位置,删除那一行,至少应该有两个地方 .删除以后,保存这个 project.pbxproj 文件,用xcode重新打开你的项目,再编译一下试试
2.asiHttpRequest 导致的链接错误.
<span style=
"color: #ff0000;"
>_inflate", referenced from:
+[ASIHTTPRequest uncompressZippedData:]
in
ASIHTTPRequest.o
+[ASIHTTPRequest uncompressZippedDataFromSource:toDestination:]
in
ASIHTTPRequest.o</span>
|
解决办法:由于缺少了类库,导入CFNetWork,libz.1.2.5.dylib,systemConfiguration,mobileCoreServices即可.