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 “不是错误”的主要内容,如果未能解决你的问题,请参考以下文章