Android 启动所有对话框(聊天室)以在quickblox中自动下载附件
我想要实现的是使用QuickBlox SDK iOS版本2.0.12自动下载附件功能,无需进入聊天室 要做到这一点,我想在登录后启动用户所属的所有对话框(聊天室) 使用当前api,用户可以查看对话框列表(聊天室),并且一次只能进入一个聊天室。 因此,假设登录用户有2个聊天室(聊天室A、聊天室B),因此当他进入“聊天室A”时,他只能在ChatdiReceiveMessageNotification/ChatdiReceiveMessageNotification中接收“聊天室A”的消息/附件作为通知 因此,当用户收到“聊天室B”的消息/附件时,他将无法访问,直到他进入“聊天室B” 为了让它工作,我在DialogsViewController中创建了以下方法: 正在尝试加入所有对话框(聊天室) 它给出了一个错误:EXC_BAD_访问ChatService.m中的以下方法Android 启动所有对话框(聊天室)以在quickblox中自动下载附件,android,ios,quickblox,Android,Ios,Quickblox,我想要实现的是使用QuickBlox SDK iOS版本2.0.12自动下载附件功能,无需进入聊天室 要做到这一点,我想在登录后启动用户所属的所有对话框(聊天室) 使用当前api,用户可以查看对话框列表(聊天室),并且一次只能进入一个聊天室。 因此,假设登录用户有2个聊天室(聊天室A、聊天室B),因此当他进入“聊天室A”时,他只能在ChatdiReceiveMessageNotification/ChatdiReceiveMessageNotification中接收“聊天室A”的消息/附件作为通
- (void)chatRoomDidEnter:(QBChatRoom *)room{
}
但是,当我尝试只加入一个聊天室时,它不会给我任何错误,并且工作得非常好。
(只需选中替换for loop,使用此->for(int i=0;i一次可以在多个房间中)
self.myRooms = [NSMutableArray array]; // strong property
for (int i=0; i<=self.dialogs.count; i++) {
QBChatDialog *dialog = self.dialogs[i];
QBChatRoom *room = [dialog chatRoom];
[self.rooms addObject:room]; // retain room object because it is autoreleased
[[ChatService instance] joinRoom:room completionBlock:^(QBChatRoom *joinedChatRoom) {
// joined
}];
}
self.myRooms=[NSMutableArray];//strong属性
对于(int i=0;i如果您查看ChatService类内部,您可能会看到在成功-ChatRoomDienter后,完成块将被释放。这意味着此方法的第二次调用将导致EXC\u坏访问。只是不要释放块。感谢回复Igor,但仍然是相同的问题,它在ChatRoomDienter中给出了一个错误,在这一行:self.joinRoomCompletionBlock(room);作为EXC_BAD_access,您是如何定义myRooms的?@property(强,非原子)NSMutableArray*myRooms;但我们使用QBChatRoom*Rooms对象来加入Rooms的
- (void)chatRoomDidEnter:(QBChatRoom *)room{
}
self.myRooms = [NSMutableArray array]; // strong property
for (int i=0; i<=self.dialogs.count; i++) {
QBChatDialog *dialog = self.dialogs[i];
QBChatRoom *room = [dialog chatRoom];
[self.rooms addObject:room]; // retain room object because it is autoreleased
[[ChatService instance] joinRoom:room completionBlock:^(QBChatRoom *joinedChatRoom) {
// joined
}];
}