0

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

ここに画像の説明を入力

4

2 に答える 2

2

ルームを作成する前に、QuickBlox チャットにログインする必要があります。

解決策は次のとおりです。

1) -ObjCフラグを Other Linker Flagsに追加する必要があります

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];
}
于 2013-01-03T17:14:58.577 に答える
0

ターゲットの設定の Other Linker Flags に -ObjC フラグを追加するだけです。それがあなたの問題を解決することを願っています。

于 2013-06-29T08:11:26.193 に答える