使用信号时的EXC_BREAKPOINT

时间:2016-06-30 14:12:59

标签: ios onesignal

我试图使用onesignal将推送通知从一个用户发送到另一个用户。他们的文档使用起来非常简单,所以我不确定我的问题是否存在于我做错的事情。以下是我用于从testDevice1testDevice2发送通知的代码,其中af59f188-583b-blah-blah-player_ID是我的testDevice2 playerID

- (IBAction)save:(UIBarButtonItem *)sender {
    NSDictionary *dict = @{@"contents" : @{@"en": @"New Task!"},
                           @"include_player_ids": @[@"af59f188-583b-blah-blah-player_ID"]
                           };

    [oneSignal postNotification:dict];
}

这是我得到http://i.imgur.com/h9YCR8v.jpg

的错误
  

EXC_BREAKPOINT(代码= 1,子代码= 0x1830f510c)

我的google fu在搜索该子代码时没什么好处

2 个答案:

答案 0 :(得分:0)

代码触发了一个异常断点,这意味着一些代码失败并引发了异常 - 可能是在sendAsynchronousRequest中,可能是从oneSignal调用的。

线程以CFRelease结束,因此可能是Core Foundation对象被发送以供发布。

鉴于你进入崩溃,它可能与该Dict的嵌套结构有关,而不是Onesignal规范,而Onesignal没有适当地处理这种情况。因此请仔细检查他们的通知dict规范的文档。

此外,您可能希望用变量替换所有这些裸文字以帮助使其更易读 - 文字很好,但如果将它们的使用限制为没有嵌套的kv对则会更容易。

HTH

答案 1 :(得分:0)

以下是我如何解决这个问题

根据@ jkasten的评论

  

确保您只在代码中创建一个OneSignal实例。创建多个可能会产生意外错误。

嗯,好的。我淘汰了我的谷歌,并遇到了这个

- (AppDelegate *)appDelegate {
    return (AppDelegate *)[[UIApplication sharedApplication] delegate];
}

因为当我启动注册时,我的appdelegate中有信号,我决定总是使用oneSignal的这个实例

我用[[self appDelegate] oneSignal]

调用oneSignal