gpt4 book ai didi

Iphone 内存警告问题

转载 作者:行者123 更新时间:2023-11-28 20:28:44 26 4
gpt4 key购买 nike

我正在使用 MapView 和 UIImagePicker 创建一个应用程序。我在屏幕上显示 map 及其在用户移动时显示的路线。用户可以在两者之间捕获图像。我有两个屏幕..

  1. 显示 map
  2. 捕获图像(这是从屏幕 1 推送的)

当我转到屏幕 1 和屏幕 2 时。我显示一个 ImagePicker 并允许用户捕获图像。当我返回屏幕 1 时,我释放 所有对象并使其成为nil。此任务通常在 viewDidUnload 中完成,但我遇到了内存问题,所以我在 View Controller 弹出时完成了它。所以我的所有对象都会在我处理完它们后立即释放并归零。

当我从 map 转到我的登录屏幕时,我正在做我知道的每一件事,比如:

  1. 从父 View 中删除 View
  2. 释放所有分配的对象或保留的对象(甚至包括 NSString 对象)
  3. 为所有这些对象设置 nil 值。

当我通过分析运行应用程序时,没有运行时泄漏可用但即使在事件监视器中,我的应用程序的实际内存也在不断增加:(

捕获 10-12 张图像后,我收到 Received memory 警告。 Level=1 我什至没有在内存中存储 UIImage 对象。我将其写在文档目录中并仅存储字符串路径。

请帮助我并指导我还可以做些什么来解决这个问题。

更新

在我使用的后退按钮上释放对象时:

- (void)releaseObjects {

[mapViewNewTour setDelegate:nil];
[mapViewNewTour removeFromSuperView];
[mapViewNewTour release];
mapViewNewTour = nil;
[lblNavTitle release];
lblNavTitle = nil;
[btnEdit release];
btnEdit = nil;
[txtTourName release];
txtTourName = nil;
[vwTourName release];
vwTourName = nil;
[mutDictOfflineSharing release];
mutDictOfflineSharing = nil;
[mutArrImage release];
mutArrImage = nil;

[_routeLine release];
_routeLine = nil;
[_routeLineView release];
_routeLineView = nil;
[aLazyLoader release];
}

最佳答案

4.3 也支持 ARC,所以请使用它。

您使用专用“releaseEverything”方法的方法一直被破坏 - 它表明缺乏所有权跟踪并且充其量是一种黑客攻击。

viewDidUnload 现在已被弃用,并且不会被 iOS 6 中的系统调用(您应该针对它构建)。

不要对抗框架——以“正确”的方式去做。

关于Iphone 内存警告问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13084360/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com