ios - 使用 NSFetchedResultsController 按日期将 CoreData 模型排列成多个部分

标签 ios swift xcode core-data nsfetchedresultscontroller

<分区>

我目前正在使用 CoreData 来本地存储我的模型。我已经成功地实现了一个 NSfetchedResultsController 来管理 tableView 中数据的检索和呈现。

我希望数据按本地日期按部分组织。因此,每个部分都将是一个独特的本地日。类似于大多数聊天应用。

我知道除了时间戳之外,我还可以在我的 managedObject 中保存日期属性并将其用作 sectionNameKeyPath,但是当用户更改其设备上的时区时,这将不起作用。在这种情况下,我将不得不返回并更改 coreData 中的每个条目并更改本地日期条目。

考虑到时区变化的可能性,是否有更简单的方法来实现按天组织?

let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Blog")
let blogSort = NSSortDescriptor(key: "dateCreated", ascending: true)
request.sortDescriptors = [blogSort]
fetchedResultsController = NSFetchedResultsController(fetchRequest: request, managedObjectContext: context, sectionNameKeyPath: "localDate", cacheName: nil)

在此示例中,dateCreated 是博客创建日期的时间戳,localDate 是实际日历日期。

最佳答案

这不是您问题的答案。但我认为这对您有帮助。

let date = Date.init()
let dateFormatter = DateFormatter.init()
dateFormatter.dateStyle = .short
let stringDate = dateFormatter(stringFrom: date)

然后您可以将此字符串作为 localDate 保存到 managedObject

managedObject.localDate = stringDate

关于ios - 使用 NSFetchedResultsController 按日期将 CoreData 模型排列成多个部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50342262/

相关文章:

arrays - 数组复制在 Swift 中显示 0 1 而不是 true false

ios - 如何从动态 UITableView 单元格中获取 UILabel 的大小?

swift - 将 UInt32 数组编码到 UInt8 的正确方法

iphone - Cocoa touch——获取设备信息

ios - 即使有内容,View Controller 也会变黑

ios - 使用 ViewController Containment 交换子 VC 时崩溃

iphone - MKMapview 影响 UINavigationBar 和 TabBar 外观

ios - undefined symbol : ___darwin_check_fd_set_overflow

iphone - 游戏中心同转

ios - 使用 CCRenderTexture 在 CoCos2d V2.xx 中保存屏幕截图