gpt4 book ai didi

ios - 如何使用 xmpp 在 swift 中按日期对聊天消息进行分组?

转载 作者:行者123 更新时间:2023-11-29 05:16:01 25 4
gpt4 key购买 nike

我正在尝试使用 XMPP 实现聊天应用程序。我试图仅按日期对消息进行分组,但时间戳包含“日期和时间”。

有人可以帮我解决这个问题吗?

lazy var fetchController: NSFetchedResultsController<NSFetchRequestResult>? = {
if let fetchRequest = self.xmppManager?.getFetchRequestForArchievedMessages(nil), let moc = self.xmppManager?.getXMPPMocForMessages() {
let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: moc, sectionNameKeyPath: "timestamp", cacheName: nil)
fetchedResultsController.delegate = self
return fetchedResultsController
}
return nil
}()

提前致谢。

按照建议,我编写了计算属性

extension XMPPMessageArchiving_Message_CoreDataObject {
var dateAsSection: String {
get {
return self.timestamp.toString(withFormat: "dd/mm/yyyy")
}
}

但以

结束

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ valueForUndefinedKey:]: the entity XMPPMessageArchiving_Message_CoreDataObject is not key value coding-compliant for the key "dateAsSection".'

最佳答案

终于找到解决办法了。感谢@Joakim Danielson 帮助我。

 lazy var fetchController: NSFetchedResultsController<NSFetchRequestResult>? = {
if let fetchRequest = self.xmppManager?.getFetchRequestForArchievedMessages(nil), let moc = self.xmppManager?.getXMPPMocForMessages() {
let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: moc, sectionNameKeyPath: **#keyPath(XMPPMessageArchiving_Message_CoreDataObject.dateAsSection)**, cacheName: nil)
fetchedResultsController.delegate = self
return fetchedResultsController
}
return nil
}()

必须将计算属性添加到扩展中

extension XMPPMessageArchiving_Message_CoreDataObject {
@objc var dateAsSection : Date {
get {
return self.timestamp.toString(withFormat: "dd/MM/yyyy").toDate(withFormat: "dd/MM/yyyy")!
}
}
}

为我工作...

关于ios - 如何使用 xmpp 在 swift 中按日期对聊天消息进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59182972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com