我有这行代码:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(stop) name:UIApplicationDidEnterBackgroundNotification object:nil];
在 iPhone 4.3 模拟器和运行 4.x 的 iPhone 上运行良好。然而,在运行 3.x 的 iPhone 上发生了崩溃。说得通。我的猜测是,当没有多任务处理时,那行代码不起作用。
我很难调试,因为使用 3.x 系统为我测试的人在远程位置。我什至不确定符号 UIApplicationDidEnterBackgroundNotification 是否评估为正确的字符串、零或随机未初始化内存,或者该操作系统上的什么。
但是除了弄清楚它为什么失败之外,我可以通过一些努力来做到这一点,我应该怎么做?如何在观察之前检测特定通知是否存在?或者我是否检查多任务处理是否可以作为一般类别使用?我想我认为这行代码是安全的。如果操作系统从不生成该通知,那么我不会收到通知,但线路不应该崩溃。