无法模拟调用applicationDidReceiveMemoryWarning:?

时间:2011-03-16 09:51:19

标签: ios nsnotificationcenter

这是调用代码:

[[NSNotificationCenter defaultCenter] postNotificationName:UIApplicationDidReceiveMemoryWarningNotification
                                                    object:[UIApplication sharedApplication]];

它无法从applicationDidReceiveMemoryWarning:调用UIApplicationDelegate

有什么不对吗?

3 个答案:

答案 0 :(得分:2)

在模拟器中,使用菜单触发低内存警告。

enter image description here

答案 1 :(得分:0)

使用UIApplicationMemoryWarningNotification代替UIApplicationDidReceiveMemoryWarningNotification应该做些什么:

[[NSNotificationCenter defaultCenter] postNotificationName:@"UIApplicationMemoryWarningNotification"
        object:[UIApplication sharedApplication]];

答案 2 :(得分:0)

您无法通过发布通知来模拟内存警告。 UIApplicationDidReceiveMemoryWarningNotification在收到内存警告时由 UIApplication发布,但它没有观察到它,因此不会调用您的视图控制器didReceiveMemoryWarning:手动发布此类通知时的方法。

正如Rob已经指出的那样,您可以使用“模拟内存警告”菜单项在iOS模拟器中模拟内存警告。

您还可以在视图控制器中观察通知,而不是实现didReceiveMemoryWarning:,但我不建议这样做,因为当您伪造内存警告时,系统提供的视图控制器的行为可能会有所不同方式。