[英]How to group chat message by date in swift using xmpp?
I'm trying to implement a chat application using XMPP.我正在尝试使用 XMPP 实现聊天应用程序。 I was trying to group messages only by date, but timestamp contains "date with time".
我试图仅按日期对消息进行分组,但时间戳包含“带时间的日期”。
Could someone please help me fix this issue.有人可以帮我解决这个问题。
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
}()
Thanks in advance.提前致谢。
As suggested, I wrote computed property按照建议,我写了计算属性
extension XMPPMessageArchiving_Message_CoreDataObject {
var dateAsSection: String {
get {
return self.timestamp.toString(withFormat: "dd/mm/yyyy")
}
}
But terminates with但以
Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ valueForUndefinedKey:]: the entity XMPPMessageArchiving_Message_CoreDataObject is not key value coding-compliant for the key "dateAsSection".'
由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[valueForUndefinedKey:]:实体 XMPPMessageArchiving_Message_CoreDataObject 与键“dateAsSection”的键值编码不兼容。
Finally got the solution.终于得到了解决方案。 Thanks to @Joakim Danielson for helping me out.
感谢@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
}()
computed property has to be added to the extension必须将计算属性添加到扩展中
extension XMPPMessageArchiving_Message_CoreDataObject {
@objc var dateAsSection : Date {
get {
return self.timestamp.toString(withFormat: "dd/MM/yyyy").toDate(withFormat: "dd/MM/yyyy")!
}
}
}
Worked for me...为我工作...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.