gpt4 book ai didi

ios - sectionNameKeyPath NSFetchedResultsController 被忽略 - Swift

转载 作者:行者123 更新时间:2023-11-29 11:44:46 26 4
gpt4 key购买 nike

我遵循了这个建议: Format sectionNameKeyPath NSFetchedResultsController - Swift

我在执行此操作时遇到了一些问题。使用 Xcode 8 和 iOS 10。

我将 Codegen 设置为手动/无并添加了我的 NSManagedObject 子类。

然后我按照你的建议添加了:

var sectionIdentifier: String
{
get
{
let dateFormatter = DateFormatter()
// dateFormatter.dateStyle = .short
// dateFormatter.timeStyle = .none
// ..or to stick to your original question:
dateFormatter.dateFormat = "yyyy-MMM-dd"
return dateFormatter.string(from: date! as Date)
}
}

但无论出于何种原因,它都会被 sectionNameKeyPath 忽略。当我在 sectionNameKeyPath 中输入“日期”时,我得到与上面提到的 AllReadyHome 相同的结果。

我什至试过:

return (date?.description)!

它没有产生任何结果。

也许有人可以指出我正确的方向......

更新 1:这就是我的 fetchedResultsController 的样子:

let fetchRequest: NSFetchRequest<Time> = Time.fetchRequest()
fetchRequest.fetchBatchSize = 20
let sortDescriptor = NSSortDescriptor(key: "date", ascending: false)
fetchRequest.sortDescriptors = [sortDescriptor]
let aFetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.managedObjectContext!, sectionNameKeyPath: "sectionIdentifier", cacheName: "Time")

结果:没有部分 No Sections

当使用日期时,它是我的实体的一个属性:

let aFetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.managedObjectContext!, sectionNameKeyPath: "date", cacheName: "Time")

看起来像这样: Sections

更新 2:当按照建议使用 sortDescriptor 时,我遇到了崩溃(“sectionIdentifier not in entity”):

let fetchRequest: NSFetchRequest<Time> = Time.fetchRequest()
fetchRequest.fetchBatchSize = 20
let sortDescriptor1 = NSSortDescriptor(key: "sectionIdentifier", ascending: false)
let sortDescriptor2 = NSSortDescriptor(key: "date", ascending: false)
fetchRequest.sortDescriptors = [sortDescriptor1, sortDescriptor2]
let aFetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.managedObjectContext!, sectionNameKeyPath: "sectionIdentifier", cacheName: "Time")

更新 3:进入屏幕时我收到以下警告:

A section returned nil value for section name key path 'sectionIdentifier'. Objects will be placed in unnamed section
CoreData: error: (NSFetchedResultsController). A section returned nil value for section name key path 'sectionIdentifier'. Objects will be placed in unnamed section

最佳答案

使用@objc 作为你的sectionIdentifier

示例:

@objc var sectionIdentifier: String {
get {
return ""
}
}

关于ios - sectionNameKeyPath NSFetchedResultsController 被忽略 - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44509232/

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