佳为好友

原:iPhone内存警告 -3

创建:2011.06.27
修改:2012.03.15
修改:2012.03.26
参见附件。
补充:
ipad 2,ios4.3 测试:
 *memory warning不会打断一个函数的执行。所以,一个函数如果消耗太多内存,则收不到memory warning就直接退出了。
*当SpringBoard发出mw之后,程序要等待当前正在执行的函数结束之后,才能收到mw。
*设定一个Timer执行分配内存大的操作,则当间隔小于等于0.0003f秒时,则不能在mw1时收到警告,只能在mw2时才能收到警告。因此,如果要执行2个分配内存较大的操作时,中间间隔至少要比0.0003f秒大。
*如果在一个大的内存分配的函数之后,performSelector另外一个大的操作,则间隔时间如果小于等于0.0001f,则无法收到mw。所以,要比0.0001f大。
补充:
如果要让代码自动发送内存不足的请求,可以:

- (void)simulateMemoryWarning

{

#if TARGET_IPHONE_SIMULATOR

    CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), (CFStringRef)@"UISimulatedMemoryWarningNotification", NULL,NULL, true);

#endif

}


 

- (void)viewDidDisappear:(BOOL)animated {

    [super viewDidDisappear:animated];

    [self simulateMemoryWarning];

}

注意:只能在模拟器下才可以用。此外,在iOS5下不行,在iOS4.3下可以。

另外:转自:http://idevrecipes.com/2011/05/04/debugging-magic-auto-simulate-memory-warnings/

不过,原文中是放在viewWillAppear中,但是,这样即无法收到viewDidUnload消息了,因此,不过viewDidDisappear却可以。

 


+++++

posted on 2012-12-29 11:01 佳为好友 阅读(180) 评论(0)  编辑 收藏 引用 所属分类: 非UI


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2012年12月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

留言簿(1)

随笔分类

搜索

最新评论

评论排行榜