Coredata NSFetchRequest DictionaryResultType 空属性 Swift

Posted

技术标签:

【中文标题】Coredata NSFetchRequest DictionaryResultType 空属性 Swift【英文标题】:Coredata NSFetchRequest DictionaryResultType null properties Swift 【发布时间】:2015-05-12 11:26:01 【问题描述】:

大家好,我正在使用此代码从 Coredata 获取结果

  func getRequest(entiryDesc:NSEntityDescription) -> NSFetchRequest

    var request:NSFetchRequest = NSFetchRequest()
    request.entity = entiryDesc
    request.resultType = NSFetchRequestResultType.DictionaryResultType
    return request


现在的问题是我也需要包含 Nil 值的所有属性,但是 excutefetchrequest 只返回那些具有值的属性,是否有任何解决方法可以在每次获取时返回带有“”之类的字符串的 Null 属性?感谢进阶

【问题讨论】:

【参考方案1】:

当然,您可以省去.DictionaryResultType 并获取正常的托管对象。字典结果类型有意义的情况很少。

如果你想构建一个所有属性都填满的字典(不管出于什么不透明的原因),请记住两件事:

确保将空值作为对象插入NSNull() 您可以使用NSEntityDescription API 生成所有属性键。使用entityDescription.propertiesByName.allKeys 生成您实体的所有属性名称的列表。

【讨论】:

我知道使用对象形式我可以获得具有空属性的结果,但我需要使用 .DictionaryResultType 来实现这一点,而不需要在最后将 NSMangedObject 转换为 Dictionary 的开销。但感谢您的帮助 Mate 如果您要检索所有属性,则如果您获得托管对象,则不会有额外的“开销”。

以上是关于Coredata NSFetchRequest DictionaryResultType 空属性 Swift的主要内容,如果未能解决你的问题,请参考以下文章

NSFetchRequest 上的 Swift2.0 CoreData 问题

Coredata NSFetchRequest DictionaryResultType 空属性 Swift

NSFetchRequest 检索 CoreData 实体中每个科目的每个学生的最高考试分数

首先对 CoreData NSFetchRequest 完全匹配进行排序

使用 Coredata 和 NSFetchRequest 进行“IN”搜索时如何格式化 NSPredicate

CoreData NSFetchRequest 返回结果,但对象的节数返回 0