2017-05-04 59 views
1

我正在嘗試將QB服務器上的聊天對話框的名稱設置爲自定義名稱。然而,無論何時在chatDialog.setValue(roomName,forKey:「name」)之後發送參數,它都會將專用聊天對話框重命名爲用於創建房間的佔用人ID的名稱。Quickblox Enterprise + Swift 3.0 + iOS 10+,QBRequest重命名聊天對話框不正確

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") 
      }) 

     } 

這是令人困惑,因爲我清楚地設置房間的名稱進行創建請求之前,我可以看到它在控制檯中的POST參數,但響應的名字它不正確。任何人都可以解釋發生了什麼?

+0

'@note如果聊天類型是私人的,名字將是'QBChatDialog'文檔中的nil.'可能解釋這一點? – Larme

+0

但在管理面板中,它將房間標記爲其他對手的名字。如果我不能說它很好,但如果那是真的,那爲什麼它會得到那個名字呢? –

+1

@ErikGrosskurth,您不能更改私人對話框的名稱。私人對話的名字就是對手的名字。 –

回答

2

即使intellisense允許您設置數據庫將其覆蓋爲類型:3聊天會話中的對手名稱的名稱,也會顯示出來。我必須切換到類型:2或組類型才能實現。

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

顯然,如果你一直還是保留了,所以還不是在我的情況什麼大不了的,你只能訪問對方的ID。