[英]How to group chat message by date in swift using xmpp?
我正在嘗試使用 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")
}
}
但以
由於未捕獲的異常“NSUnknownKeyException”而終止應用程序,原因:“[valueForUndefinedKey:]:實體 XMPPMessageArchiving_Message_CoreDataObject 與鍵“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")!
}
}
}
為我工作...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.