2017-05-04 3 views
1

Ich versuche den Namen des Chat-Dialogs auf dem QB-Server auf einen benutzerdefinierten Namen zu setzen. Doch wenn ich die Parameter nach chatDialog.setValue (roomName, forKey: "name") sende, benennt es den privaten Chat-Dialog in den Namen der Insassen-ID um, die ich zum Erstellen des Raums verwendet habe.Quickblox Enterprise + Swift 3.0 + iOS 10+, QBRequest Chat-Dialog falsch umbenennen

let qbUser = QBUUser() 
     qbUser.id = DataModel.sharedInstance.qbLoginParams.id 
     qbUser.password = DataModel.sharedInstance.sessionInfo.QBPassword 
     QBChat.instance().connect(with: qbUser) { (error) in 
      if error != nil { 
       print("error: \(String(describing: error))") 
       return 
      } else { 
       print("success connecting to QB chat") 
      } 

      let chatDialog: QBChatDialog = QBChatDialog(dialogID: nil, type: QBChatDialogType.private) 
      chatDialog.occupantIDs = [] 
      //chatDialog.occupantIDs?.append(NSNumber(value: DataModel.sharedInstance.qbLoginParams.id)) 
      chatDialog.occupantIDs?.append(12186) 
      chatDialog.setValue(roomName, forKey: "name") 

      print(chatDialog) 

      QBRequest.createDialog(chatDialog, successBlock: {(response: QBResponse?, createdDialog: QBChatDialog?) in 
       print("<------------------------------<<< Success creating chat dialog") 
       print(response ?? "No Response") 
       print(createdDialog ?? "No Created Dialog") 
      }, errorBlock: {(response: QBResponse!) in 
       print("<------------------------------<<< Error creating chat dialog") 
       print(response ?? "No Response") 
      }) 

     } 

Dies ist verwirrend, da ich deutlich den Namen des Raumes gesetzt, bevor die Anforderung zu schaffen machen, und ich kann es in den POST-Parameter in der Konsole sehen noch die Antwort Namen es falsch. Kann jemand erklären, was passiert?

+0

'@note Wenn der Chat-Typ privat ist, wird der Name nil.' aus dem Dokument von' QBChatDialog' kann dies erklären? – Larme

+0

Aber im Admin-Panel beschriftet es den Raum als der Name des anderen Gegners. Wenn ich es nicht nennen kann, ist das in Ordnung, aber wenn das stimmt, warum bekommt es dann diesen Namen? –

+1

@ErikGrosskurth, Sie können den Namen des privaten Dialogs nicht ändern. Der Name des privaten Dialogs ist nur der Name des Gegners. –

Antwort

2

Stellt sich heraus, obwohl intellisense können Sie den Namen der DB setzen überschreibt es als der Name des Gegners in einem Typ: 3 Chat-Sitzung. Ich musste zu einem Typ: 2 oder Gruppentyp wechseln, um das zu ermöglichen.

let chatDialog: QBChatDialog = QBChatDialog(dialogID: nil, type: QBChatDialogType.group) 

Anscheinend kann man nur die Gegner-IDs zugreifen, wenn Sie sowieso hinzugefügt wurden, so dass es keine große Sache, in meinem Fall war.

Verwandte Themen