有没有其他人,他们在iOS 6应用程序中使用地图,注意到极高的内存使用,一直到接收内存警告到崩溃的应用程序?
我通过仪器运行应用程序,我没有看到任何泄漏,直到创建地图视图,应用程序始终以大约3mb Live Bytes运行.创建地图并下载切片后,Live Bytes会跳至~13mb Live Bytes.然后,当我移动地图并放大和缩小Live Bytes连续体时,直到应用程序崩溃在大约40mb Live Bytes.顺便提一下,这是在iPhone 4上.在iPod touch上它甚至更早崩溃.
我正在重复使用注释视图,没有任何泄漏.是否有其他人在使用新的iOS 6地图时看到了相同的高内存使用量?还有,有没有人有解决方案?
当用户单击按钮时,它会显示一个带有两个视图控制器的新标签栏视图控制器.我就是这样做的
ACLevelDownloadController *dvc = [[ACLevelDownloadController alloc] initWithNibName:@"ACLevelDownloadController" bundle:[NSBundle mainBundle]];
ACInstalledLevelsController *ivc = [[ACInstalledLevelsController alloc] initWithNibName:@"ACInstalledLevelsController" bundle:[NSBundle mainBundle]];
UITabBarController *control = [[UITabBarController alloc] init];
control.viewControllers = @[dvc, ivc];
dvc.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFeatured tag:0];
ivc.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemDownloads tag:1];
[self presentViewController:control animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
这很好用.我关闭那些视图控制器具有dismiss在两个方法ACLevelDownloadController和ACInstalledLevelsController.这也很好.奇怪的是,当我呈现视图控制器时,内存使用率会上升

但它永远不会失败.如果我再次呈现它,它会更上升
我正在使用ARC.为什么视图控制器使用的内存在被解除后不被释放?
他们被解雇的方式是两者ACLevelDownloadController并且ACInstalledLevelsController已经连接了IBActions,当他们被点击时调用这个方法
- (void)dismiss:(id)sender{
[self dismissViewControllerAnimated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud) 我正在开发我的第一个ARC&Core Data项目,基于Xcode(通用)Master-Detail模板.我注意到Xcode5在Debug Navigator中有一个内存显示,但在使用它时,发现它的图形与运行Leaks&Allocations跟踪时在Instruments中显示的mem使用几乎没有相似之处.我已经使用模拟器进行了仪器跟踪(模拟iPhone和iPad - 以及后者的详细信息'卸载'与后者有所不同)以及iPad2和iPodTouch.结果大致相同:
iPhone 6.1模拟器
- A代-------- 1.13 MB
- B代-------- 397.70 KB
- C代-------- 76.96 KB
- D代-------- 11.70 KB
- E代-------- 1.56 KB
- F代-------- 3.48 KB
整体增长率为30%
其中,A代表显示Master表加载的增长,而每个连续的Generation都在Detail视图访问 和交互之后增长(分别需要获取NSManagedObjects和创建NSObject).与其他设备的增长趋势大致相似(A代增长为iPad sim:1.42; iPad2:1.57; iPodTouch:0.94,但同样拖尾).
但是,根据Debug Navigator,每个点的总使用量出现在:
iPhone 6.1 Debug Navigator
- A代-------- 4.2 MB
- B代-------- 6.9 MB - 增长2.7
- C代-------- 7.1 MB - 增长0.2
- D代-------- 7.8 MB - 增长0.7
- E世代-------- 8.0 MB - 增长0.2
- F代-------- 8.4 MB - 增长0.4
整体增长100%!
参考其他类似的问题,我没有启用Zombies.有其他人看到过这样的差异吗?我是否正确倾向于相信仪器而不是Debug Navigator的总结数字?
PS.在运行真实设备时(两者都在iOS5版本上),Debug Navigator的摘要图似乎不可用.这是正常的吗?
ios ×2
memory ×2
instruments ×1
ios6 ×1
ios6-maps ×1
memory-leaks ×1
mkmapview ×1
objective-c ×1
xcode5.0.1 ×1