簡體   English   中英

在QuickBlox中創建聊天室

[英]creating chat room in QuickBlox

我正在嘗試使用我的iOS應用程序在QuickBlox中創建一個聊天室。

[[QBChat instance] createPrivateRoomWithName:@"My Room"];


- (void)createPrivateRoomWithName:(QBChatRoom*)room{
    NSLog(@"Private room %@ was created", room.name);

    // Add users to this room
    NSNumber *anny = [NSNumber numberWithInt:300];
    NSNumber *jim = [NSNumber numberWithInt:357];
    NSArray *users = [NSArray arrayWithObjects:anny, jim, nil];

    [[QBChat instance] addUsers:users toRoom:room];
}

但使用此代碼后,我的應用程序崩潰,下面是崩潰日志。

2013-01-03 19:13:55.234 Chat.Points[11178:23d03] +[QBDDXMLElement elementWithName:xmlns:]: unrecognized selector sent to class 0x22f73c
2013-01-03 19:13:55.241 Chat.Points[11178:23d03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[QBDDXMLElement elementWithName:xmlns:]: unrecognized selector sent to class 0x22f73c'
*** First throw call stack:
(0x32fe012 0x29eae7e 0x33892ad 0x32edbbc 0x32ed94e 0x101e05 0x2da153f 0x2db3014 0x2da3418 0x2da32a6 0x2da4280 0x2da3fcb 0x990f7b24 0x990f96fe)
libc++abi.dylib: terminate called throwing an exception

在此輸入圖像描述

您必須在創建空間之前登錄QuickBlox Chat。

解決方案是:

1)您必須將-ObjC標志添加到其他鏈接器標志

2)添加到SplashController.h聊天委托QBChatDelegate

@interface SplashController : UIViewController <QBActionStatusDelegate, FBServiceResultDelegate, FBSessionDelegate, QBChatDelegate>{

3)添加到SplashController.m,

如果

}else if([result isKindOfClass:[QBMRegisterSubscriptionTaskResult class]]){

在頂部的下一行:

    // Login to QuickBlox Chat
    //
    [[QBChat instance] setDelegate:self];
    [DataManager shared].currentQBUser.password = [NSString stringWithFormat:@"%u", [[[DataManager shared].currentFBUser objectForKey:kId] hash]];
    [[QBChat instance] loginWithUser:[DataManager shared].currentQBUser];
    //
    //

4)最后,添加到最后

#pragma mark-
#pragma mark QBChatDelegate

- (void)chatDidLogin{
    [[QBChat instance] createPrivateRoomWithName:@"ChatRRoom"];
}

- (void)chatRoomDidCreate:(QBChatRoom *)room{
    NSLog(@"Room did create %@", room);
    myRoom = [room retain];
}

只需在目標設置中的其他鏈接器標志中添加-ObjC標志即可。 希望它能解決你的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM