【问题标题】:UserInfo Dictionaries on CoreDataCoreData 上的 UserInfo 字典
【发布时间】:2013-06-18 07:28:59
【问题描述】:

Apple 核心数据文档的这一部分是什么意思?

用户信息词典

托管对象模型中的许多元素(实体、属性和关系)都有关联的用户信息字典。您可以将所需的任何信息作为键值对放入用户信息字典中。放入用户信息字典的通用信息包括实体的版本详细信息,以及用于获取属性的谓词的值。

我了解默认情况下实体具有该字典,但我无法在 coredata 实体或属性上找到 userInfo。

【问题讨论】:

  • 这是我从here 发现的一个不错的技巧:“这与我想出的方法几乎相同,尽管我对我的方法做了一些改动。您可以将自定义键添加到对象模型中属性的 userInfo 字典,允许您自定义要检索的 JSON 数据中的 keyPath。这意味着 Core Data 中的键名可以不同,也可以是 JSON 中深度嵌套属性的结果数据。”
  • "这样做还可以让您指定一个自定义选择器,用于对传入值进行特殊格式化/处理,以防您需要做的不仅仅是 dateFromString: 或 numberWithInteger 等。"跨度>

标签: ios core-data attributes entities userinfo


【解决方案1】:

NSManagedObject(通过entity 属性)或NSManagedObjectModel 获取NSEntityDescription,并通过attributesByName 获取NSAttributeDescription。这为您提供了一个字典,您可以在其中按名称获取正确的描述,该名称也具有 userInfo 作为属性。

NSManagedObject *managedObject;
NSEntityDescription *entityDescription = managedObject.entity;
NSAttributeDescription *attributeDescription = entityDescription.attributesByName[@"someAttribute"];
NSString *foo = attributeDescription.userInfo[@"foo"];

【讨论】:

  • 这意味着userInfos 在“类”(即实体及其组成部分)级别而不是“实例”(即NSManagedObjects)级别可用,对吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-28
  • 1970-01-01
  • 2021-09-05
  • 1970-01-01
  • 2018-02-18
  • 2015-07-02
相关资源
最近更新 更多