【问题标题】:iOS Simulator crashes when setting UILocalNotification and then closing the appiOS 模拟器在设置 UILocalNotification 然后关闭应用程序时崩溃
【发布时间】:2013-07-13 07:06:26
【问题描述】:

我正在设置 UILocalNotification 来通知用户某个事件。

我的问题是模拟器在设置通知并关闭应用程序后崩溃并显示消息“Thread 1:signal 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");
}

您知道为什么会发生这种情况吗?

谢谢

【问题讨论】:

  • 能发下相关方法或代码吗?
  • 我已经为你更新了我的问题。
  • 粘贴您收到通知的代码
  • 这是我唯一的代码,我没有任何其他代码用于接收通知。
  • @JakesRassie:我检查了你的代码,我没有崩溃。因此,通知接收或其他代码可能存在任何问题

标签: ios ios-simulator uilocalnotification


【解决方案1】:

我遇到了同样的问题,经过一些实验后,我学到了足够的知识来解决它。

首先,请注意,您只需按照以下步骤即可随意触发此崩溃/挂起:

  1. 从 Xcode 启动您的应用(在设备或模拟器上)。
  2. (可选)触发通知,然后按 Home 按钮以最小化您的应用,然后双击 Home 按钮并从出现的 Dock 中完全关闭您的应用。
  3. 在不拔下设备、关闭模拟器或关闭 Xcode 的情况下,直接从设备或模拟器中重新启动您的应用,方法是点击召唤应用的通知或简单地点击应用图标主屏幕。

现在,如果您在模拟器上,应用程序将立即崩溃,如果您在真实设备上,整个设备将挂起并且即使按下 Home 按钮也没有响应,直到您拔下电源或按下在 Xcode 中再次运行按钮。

这个问题似乎在 Xcode 4.6.3 和 Xcode 5.0 中都表现出来了;其他版本没试过。

不用说,如果您尝试测试涉及从通知完全重新启动应用程序的用户交互路径,就像这里的问题提问者一样(而不是简单地测试通知将您的应用程序带入前景与背景)。幸运的是,这个错误很容易解决。

如果您使用的是设备,解决方法很简单:从 Mac 上拔下设备。仅当您尝试启动应用程序时将设备插入 Xcode 时,上述错误才会显现出来。

如果您只能访问模拟器,这会有点棘手,但也只是一点点。首先,使用指令here 使您能够从 Xcode 外部启动模拟器:

  1. 在 Finder 中,浏览至 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/
  2. iOS Simulator 应用程序从该文件夹拖到您的 Dock 中。
  3. 您现在可以随时从 Dock 中将模拟器作为独立应用启动。

现在测试使用本地通知来完全重新启动应用的应用:

  1. 从 Xcode 在模拟器上启动您的应用程序。
  2. 触发您的本地通知。
  3. 使用主页按钮退出您的应用。
  4. 双击主页按钮并从模拟器底座关闭您的应用。
  5. 使用 command + q 关闭模拟器
  6. 从 Mac 的扩展坞重新启动模拟器。
  7. 等待您的通知。
  8. 点按通知以重新启动应用。
  9. 注意它不会立即崩溃!耶!

这是必要的,这很愚蠢,但至少应用此解决方法不会花费很长时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多