LayerKit 的 newConversationWithParticipants 总是在第一次调用时抛出 FMDatabase “不是错误”

Posted

技术标签:

【中文标题】LayerKit 的 newConversationWithParticipants 总是在第一次调用时抛出 FMDatabase “不是错误”【英文标题】:LayerKit's newConversationWithParticipants always throws FMDatabase "not an error" on first call 【发布时间】:2015-11-28 20:09:45 【问题描述】:

我将 LayerKit 0.17.3 与 Swift 一起使用,newConversationWithParticipants 总是在第一次抛出错误,域设置为 FMDatabase 并出现“不是错误”错误。任何后续调用都会得到预期的结果。

初始错误:

Error with creating LYRConversation: Error Domain=FMDatabase Code=0 "not an error"
UserInfo=NSLocalizedDescription=not an error

后续错误:(期望的)

Error with creating LYRConversation: Error Domain=com.layer.LayerKit.Errors
Code=1013 "A conversation with a distinct participant list already exists
for participants [...]

这是查找/创建对话的功能:

@IBAction func didTapCompose(sender: AnyObject) 
    var conversation : LYRConversation?

    // create ATLConversationViewController
    let controller = ConversationViewController(layerClient: self.layerClient)
    controller.hidesBottomBarWhenPushed = true;

    // get recipient (user objectID) from member object
    let recipient = member.objectForKey(GlobalConstants.Parse.UserKey)?.objectId!
    // create set for newConversationWithParticipants
    let participants : Set = [recipient!]

    do 
        try conversation = layerClient.newConversationWithParticipants(participants, options: nil)
        controller.conversation = conversation
     catch 
        print("Error with creating LYRConversation: \(error)")
    
    self.navigationController!.pushViewController(controller, animated: true)

【问题讨论】:

我在 layerClient 上打开了调试,在“不是错误”错误之前得到了这个:LYRConversationRepository.m:740 failed to unique with stream for participants:( qQnH4dQT3T, r1yXUYpXdx ) with Error Domain=FMDatabase Code=0 "not an error" UserInfo=NSLocalizedDescription=not an error 【参考方案1】:

Layer.com 上的支持表示这是一个错误,将在下一个版本中修复。

【讨论】:

嗨,我是 Layer 的合作伙伴工程师 Abir,我们刚刚推出了 v0.17.4,其中包含对此的修复。请运行“pod update”并重试。如果您仍然看到问题,请发送电子邮件至 support@layer.com【参考方案2】:

这仍然是坏的,上面的答案说版本是0.17.4,但cocoapod仍然是0.17.3 https://cocoapods.org/?q=layerkit

我的项目仍在中断

【讨论】:

他们更新了 cocoapod 但它仍然坏了。我仍然无法创建对话。天哪,我真希望我选择了 QuickBlox……但我已经投入了太多的工作学习层……【参考方案3】:

默认情况下,Layer 不会创建与相同参与者的对话。 您必须在创建时在选项中将 distinct 标志设置为 false。

使用 layerkit 0.17.4 测试。

options = [LYRConversationOptionsDistinctByParticipantsKey : false]
let conversation = layerClient.newConversationWithParticipants(participants, options: options)

【讨论】:

以上是关于LayerKit 的 newConversationWithParticipants 总是在第一次调用时抛出 FMDatabase “不是错误”的主要内容,如果未能解决你的问题,请参考以下文章

既是3的倍数又是5的倍数都有哪些

一个三位数既是3的倍数,又是5的倍数。这样的三位数最小是啥

数组的创建,及数组的方法

cnn中的步长的目的和重要性是啥

物质的运动

多态的好处??