核心数据的独特价值 swift
Posted
技术标签:
【中文标题】核心数据的独特价值 swift【英文标题】:Distinct value from core data swift 【发布时间】:2020-10-07 07:15:46 【问题描述】:我想从核心数据中获取不同的日期。 使用此代码 fetchRequest.returnsDistinctResults = true 不起作用。 它仍然显示所有值。
guard let appDelegate =
UIApplication.shared.delegate as? AppDelegate else
return
let managedContext = appDelegate.persistentContainer.viewContext
let fetchRequest = NSFetchRequest<NSManagedObject>(entityName: "Journal")
fetchRequest.propertiesToFetch = ["dateAsNumber"]
fetchRequest.returnsDistinctResults = true
do
dateListSquare = try managedContext.fetch(fetchRequest)
catch let error as NSError
print("Could not fetch. \(error), \(error.userInfo)")
【问题讨论】:
看看这个答案:***.com/a/60101960/9732124 来自 Johannes Fahrenkrug 这能回答你的问题吗? CoreData get distinct values of Attribute 【参考方案1】:如果您想要不同的结果,您需要将获取请求的结果类型设置为NSFetchRequestResultType.dictionaryResultType
。您无法获取托管对象并获得不同的结果,因为可能存在多个具有相同值的托管对象。
看起来像
let fetchRequest: NSFetchRequest<NSDictionary> = NSFetchRequest(entityName: "Journal")
fetchRequest.propertiesToFetch = ["dateAsNumber"]
fetchRequest.returnsDistinctResults = true
fetchRequest.resultType = .dictionaryResultType
结果将是一个字典数组。每个propertiesToFetch
中的每个条目都有一个密钥(在这种情况下只有一个)。
如果您使用propertiesToFetch
而不使用dictionaryResultType
,您会影响故障的工作方式,但不会影响结果的内容。使用returnsDistinctResults
只有在你也使用propertiesToFetch
的情况下才有效,所以它也受你是否使用dictionaryResultType
的影响。
【讨论】:
以上是关于核心数据的独特价值 swift的主要内容,如果未能解决你的问题,请参考以下文章
核心数据 NSPersistentStoreCoordinator 中止来电,SWIFT
周鸿袆:360回归是出于国家安全考虑(硬件有硬件独特的规律,硬件不可能有很高的利润,核心的价值还是硬件背后承载的软件和云端的服务)