我试图通过一个频道发送推送通知,指示该频道即将关闭,因此我需要通过该频道发送通知,然后从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需要订阅一个频道来发送它?然后用户可以获得他/她自己的推送通知。
我会发布堆栈跟踪...但它实际上只是一个很长的十六进制地址列表,如果不检查编译成汇编的代码就没有任何意义。
无论如何,请帮我弄清楚如何发送最后一条推送消息然后放弃频道。谢谢!