我正在设置UILocalNotification以通知用户有关某个事件。
我的问题是,在设置通知并关闭应用程序后,模拟器崩溃并显示消息“线程1:信号SIGKILL ”。
我知道this回答,但我没有在userinfo词典中存储任何内容。
以下是代码:
NSDate *alertTime = [[NSDate date]
dateByAddingTimeInterval:10];
UIApplication* app = [UIApplication sharedApplication];
UILocalNotification* notifyAlarm = [[UILocalNotification alloc] init];
if (notifyAlarm)
{
notifyAlarm.fireDate = alertTime;
notifyAlarm.timeZone = [NSTimeZone defaultTimeZone];
notifyAlarm.repeatInterval = 0;
notifyAlarm.alertBody = @"Testing notification.";
[app scheduleLocalNotification:notifyAlarm];
NSLog(@"Notification set");
}
你知道为什么会发生这种情况吗?
由于
答案 0 :(得分:1)
我遇到了同样的问题,经过一些实验了解到能够解决它的问题。
首先,请注意您可以通过以下步骤随意触发此崩溃/挂起:
现在,如果您使用的是模拟器,应用程序将立即崩溃,如果您使用的是真实设备,即使按下“主页”按钮,整个设备也会挂起并无响应,直到您拔下它或按下在Xcode中再次运行按钮。
这个问题似乎在Xcode 4.6.3和Xcode 5.0中都有所体现;我还没试过其他版本。
毋庸置疑,如果您尝试测试涉及从通知中完全重新启动应用程序的用户交互路径,这个错误真的很糟糕,就像问题提供者一样(而不是简单地测试通知将您的应用带入的情况)来自背景的前景)。幸运的是,这个bug很容易解决。
如果您使用的是设备,则解决方法就是:从Mac上拔下设备。如果在您尝试启动应用程序时将设备插入Xcode,则上述错误仅会自行显示。
如果你只能访问模拟器,那就有点棘手,但只是轻微一点。首先,使用说明here使您能够从Xcode外部启动模拟器:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/
iOS Simulator
应用从该文件夹拖到您的停靠栏。现在测试使用本地通知完全重新启动应用的应用:
这是必要的,但至少应用这种解决方法并不需要很长时间。