【问题标题】:create 1 on 1 channel SendBird using swift使用 swift 在 1 个频道上创建 1 个 SendBird
【发布时间】:2017-08-24 02:46:55
【问题描述】:

我正在尝试创建一对一的通道连接,但是我无法弄清楚创建 SDBUser 的格式。我正在执行以下操作来尝试创建频道。

SBDGroupChannel.createChannelWithUsers([("123456", "1234567"], isDistinct: true) { (channel, error) in
            if error != nil {
                NSLog("Error: %@", error!)
                return
            } else {
                //this means that the channel was successfully created
                print(channel)

                //segue to the open chat view
                //segue here DREW
            }
        }

这些字符串是出现在 SendBird 中的 ID。有一个错误,它期望 SDBUser 的类型,并得到了 String。

我已尝试以下方法来获取 SBDUser,但得到以下值

let user1 = SBDUserListQuery.init(userIds: ["123456"])

但是用户值是SBDUserListQuery类型,所以还是不行。

我无法在 SendBird 文档中找到解决方案

【问题讨论】:

    标签: swift sendbird


    【解决方案1】:

    SendBird 有多种方法可以使用用户对象或用户 ID 创建群组频道。您使用的方法是使用用户对象创建通道。以下链接是另一种使用用户 ID 的方法。

    https://docs.sendbird.com/ref/ios/Classes/SBDGroupChannel.html#//api/name/createChannelWithUserIds:isDistinct:completionHandler:

    该链接适用于 Objective-C,但您可以在 Swift 中采用相同的方法,如下所示:

    斯威夫特 3:

    SBDGroupChannel.createChannel(withUserIds: ["123456", "1234567"], isDistinct: true) { (channel, error) in
        // Do something.            
            }
    

    SBDUserListQuery对象是获取用户列表的查询对象。如果要从查询对象中获取用户对象,则必须调用加载方法。

    https://docs.sendbird.com/ref/ios/Classes/SBDUserListQuery.html#//api/name/loadNextPageWithCompletionHandler:

    方法的completionHandler 块返回用户列表。

    斯威夫特 3:

    let query = SBDUserListQuery(userIds: ["123456"]);
    query?.loadNextPage(completionHandler: { (users, error) in
    
            })
    

    【讨论】:

    • 尝试创建频道时,completionHandler 抛出错误,但两个用户 ID 都存在。关于为什么会这样的任何想法?
    • @dgelinas21 错误是什么?让我知道error.domainerror.code
    • 原来是swift版本转换的问题,我已经修复了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 2013-12-26
    • 2018-08-02
    • 2021-10-23
    • 2021-12-15
    • 2020-02-28
    • 1970-01-01
    相关资源
    最近更新 更多