使用Parse发送推送后删除推送通道

时间:2014-08-01 07:12:22

标签: ios parse-platform apple-push-notifications

我试图通过一个频道发送推送通知,指示该频道即将关闭,因此我需要通过该频道发送通知,然后从PFInstallation属性“频道”中删除该频道。但是,当我这样做时,我得到一个异常说: * 由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'上一次操作后操作无效。'

以下是我称之为的代码:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        //add code here for when you hit delete
        ChatSession *session = self.chatSessions[indexPath.row];
        [self.chatSessions removeObjectAtIndex:indexPath.row];
        [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];

        NSString *pushChannel = [NSString stringWithFormat:@"channel_%@", session.sessionName];
        PFPush *push = [[PFPush alloc] init];
        [push setChannel:pushChannel];
        [push setMessage:[NSString stringWithFormat:@"%@ has ended your chat.", session.myAlias]];
        [push sendPushInBackground];

        [[PFInstallation currentInstallation] removeObject:pushChannel forKey:@"channels"];
        [[PFInstallation currentInstallation] saveInBackground];

        [session removeChatSession];

    }
}

如果没有收到此消息,我该怎么做?首先,对我来说,为什么我会收到这条消息,这对我来说真的没有意义。为什么PFInstallation需要订阅一个频道来发送它?然后用户可以获得他/她自己的推送通知。

我会发布堆栈跟踪...但它实际上只是一个很长的十六进制地址列表,如果不检查编译成汇编的代码就没有任何意义。

无论如何,请帮我弄清楚如何发送最后一条推送消息然后放弃频道。谢谢!

0 个答案:

没有答案