由于进入进行位置跟踪之前打开了位置定位服务:mapView.showsUserLocation = YES;//显示定位图层 ,初步判断地层SingleCircleView调用了layer的画图方法。由于这个推出前没有关闭,导致后台还继续在画图。
解决办法:在推出之前关闭定位,问题解决。但是lz退出后释放了内存,奇怪为什么mapview还是处于活跃状态。有更深了解的大侠请赐教。
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’
原因:设置了xib自动布局.
解决方法:选中xib,在属性面板第一个选项卡:将interface builder document 中间use autolayout 复选框的勾去掉.
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
解决办法: 这是由于没有添加头文件路径所致. 点击项目>>targets>> build Setting>>search paths 给header search paths 添加一个值:${SDKROOT}/usr/include/libxml2
_inflate", referenced from:
+[ASIHTTPRequest uncompressZippedData:] in ASIHTTPRequest.o
+[ASIHTTPRequest uncompressZippedDataFromSource:toDestination:] in ASIHTTPRequest.o
解决办法:由于缺少了类库,导入CFNetWork,libz.1.2.5.dylib,systemConfiguration,mobileCoreServices即可.