标签: didreceivememorywarning

我的iphone应用程序获得内存警告,并以6.8MB杀死

我的应用程序有一个线程,耗时工作超过一分钟,该应用程序消耗大约6.8MB的内存.我会在一段时间后收到内存警告,然后它会被杀死.我没有什么可以发布的,我甚至没有使用7MB的内存......让我发疯了...请问有什么建议吗?

memory iphone warnings didreceivememorywarning

6
推荐指数
1
解决办法
1227
查看次数

为什么iOS不会在由didReceiveMemoryWarning发布之后自动从Nib加载的视图?

我的iPad应用程序大量使用自动旋转.这很棒.然而,我注意到,如果一个隐藏的视图是由默认实现释放didReceiveMemoryWarning(如描述在这里),当画面从笔尖重新加载,我正好是在景观,它加载它的肖像.这会对界面造成严重破坏,直到我手动旋转iPad并强制它进入正确的方向.

我原以为iOS会在当前方向加载视图; 这就是应用程序启动时的功能.但它没有,不是在被卸下之后didReceiveMemoryWarning.为什么不?我怎么能这样做呢?

uiviewcontroller didreceivememorywarning autorotate ios

5
推荐指数
1
解决办法
4045
查看次数

在显示视图控制器时是否调用didReceiveMemoryWarning/viewDidUnload?

关于didReceiveMemoryWarning/ 的问题viewDidUnload.

如果我的应用程序有很多视图控制器,其中一个显示,其他人回来(因为我使用导航控制器或标签栏控制器,没关系),哪个视图控制器将接收didReceiveMemoryWarning/ viewDidUnload,所有这些只是隐藏,还是只显示?

是否可能显示VC接收didReceiveMemoryWarning但是没有viewDidUnload(因为如图所示,它没有任何意义).

顺便说一句,看到这个图后我有这些问题: UIViewController init/dealloc流程图

非常感谢您的帮助.

objective-c uiviewcontroller didreceivememorywarning ios

5
推荐指数
1
解决办法
1594
查看次数

在MonoTouch中释放/处置UIViewController

据我了解,我们需要在MonoTouch中处理它们时保持对Cocoa对象的引用.这样做的原因是ObjC运行时可能仍然保持对对象的引用,如果我们没有"MonoTouch引用",它们可能被垃圾收集,这会导致EXC_BAD_ACCESSObjC运行时尝试访问它们.

比如,我们有两个UIViewController子类,VC1和VC2.如果用户单击VC1上的按钮,则UI导航到VC2,用户可以来回导航.如果我每次用户导航到VC2时都会创建一个新的VC2实例,那么对旧实例的引用就会丢失,因此它们会被垃圾收集,并且应用程序会在下次didReceiveMemoryWarning传播到UIViewControllers 时崩溃.

如何释放旧引用,所以我不必每次都使用相同的VC2实例?Dispose似乎还不够.

garbage-collection objective-c uiviewcontroller xamarin.ios didreceivememorywarning

5
推荐指数
1
解决办法
3001
查看次数

什么时候实际调用didReceiveMemoryWarning

我以前从未亲眼见过didReceiveMemoryWarning.是否有一个已知的内存使用阈值被调用?

memory iphone didreceivememorywarning ios ios6

5
推荐指数
1
解决办法
2907
查看次数

内存警告设备,而不是仪器

我有一个巨大的同步过程,我下载并解压缩400-500个XML文件,然后解析它.有了这些数据,我将创建大量的核心数据对象RestKit API.一开始,我有一个内存警告,活动字节为450mb +,因为我没有使用自动释放池,只是试图在最后保存核心数据.

我修复了这个问题,现在经常保存到核心数据和使用 @autoreleasepool块.当我现在使用乐器运行我的应用程序时,我可以看到实时字节仅为20mb-30mb,总是释放内存并且永远不会增加大小.这个过程很有效.但是当我在没有乐器的情况下启动应用程序时,在查看文件后我得到了一个Memory Warning.稍后应用程序崩溃.

使用和不使用instruments工具运行应用程序之间有什么区别?为什么它以不同的结果结束?

instruments didreceivememorywarning ios restkit

5
推荐指数
1
解决办法
479
查看次数

如何测试你的iOS应用程序在内存警告方面是否表现良好?

我最近注意到,有时我们的应用程序在收到内存警告后立即崩溃.在设备上重现这个问题非常困难,甚至在模拟器中我也可能在"模拟内存警告"的十次尝试中遇到这种情况.

调试内存警告处理程序的好策略是什么,考虑问题通常来自"太迟"的回调,在警告处理程序中被销毁后意外使用的资源等等?

didreceivememorywarning ios ios-simulator

5
推荐指数
1
解决办法
497
查看次数

解析JSON和创建NSManagedObjects时消耗大量内存

我正在解析一个大约53 MB的iPad上的JSON文件.解析工作正常,我正在使用Yajlparser这是一个SAX解析器,并设置如下:

    NSData *data = [NSData dataWithContentsOfFile:path options:NSDataReadingMappedAlways|NSDataReadingUncached error:&parseError];
    YAJLParser *parser = [[YAJLParser alloc] init];
    parser.delegate = self;
    [parser parse:data];
Run Code Online (Sandbox Code Playgroud)

到目前为止一切正常,但JSON文件变得更大,现在我突然在iPad 2上遇到内存警告.它收到4个内存警告,然后崩溃.在iPad 3上,它可以完美运行,没有任何内存警告.

我已经开始使用Instruments进行分析并发现了很多CFNumber分配(我已经在几分钟之后停止了仪器,我已经运行它直到崩溃并且CFNumber事件大约为60 mb或更多).

CFNumber分配

打开CFNumber详细信息后,它显示了一个巨大的分配列表.其中一个向我展示了以下内容:

CFNumber分配1

还有一个在这里:

CFNumber分配2

那么我做错了什么?这个数字(例如最后一张图片中的72.8%)代表什么?我正在使用ARC,所以我没有做任何发布或保留等等.

谢谢你的帮助.干杯

编辑:我已经问过如何在这里解析如此庞大的文件的问题:iPad - 解析一个非常巨大的json - 文件(介于50和100 mb之间)
所以解析本身似乎很好.

json memory-management objective-c didreceivememorywarning ios

5
推荐指数
1
解决办法
1258
查看次数

我的AVPlayer的内存在哪里,我该如何取回?

我正在和他一起玩很多视频AVPlayer.为了减少加载时间,我将相应的视图存储在一个NSCache.

这可以正常工作,直到达到一定数量的视频,视频只是停止播放,甚至出现.

没有错误,日志或内存警告.特别是,我正在听UIApplicationDidReceiveMemoryWarningNotification清除缓存但是从未收到过.

如果我删除缓存,所有视频都会以较差的性能为代价.

这让我怀疑AVPlayer是使用来自不同进程的内存(哪一个?).当记忆达到一定限度时,新玩家将停止工作.

它是否正确?

如果是这样,是否有办法在达到此魔术限制时通知采取适当的措施(例如,清除缓存)以确保播放其他媒体?

video didreceivememorywarning ios avplayer

4
推荐指数
1
解决办法
2996
查看次数

didReceiveMemoryWarning方法应该发布什么内容?

我所做的就是从这种方法的视角中释放任何东西,但我的直觉告诉我,我可能做错了.

在大多数情况下,应该杀死什么样的资源 didReceiveMemoryWarning

objective-c didreceivememorywarning ios

4
推荐指数
1
解决办法
6474
查看次数