如何为特定数据库

时间:2015-07-13 20:22:29

标签: ios core-data

我有一张属性表: 国家,地方,描述等 可以重复国家/地区属性的值(一个国家/地区可以重复两次或更多次)。

我需要从这个DB获得:

  1. 所有国家/地区。 (对于tableView)
  2. 特定国家/地区的所有地方。(对于tableView)
  3. 特定地方的其他信息。 (详情请见     视图)
  4. 所以,问题是实现xcdatamodeld的最佳方式是什么。 我的想法:

    1. 我可以创建一个没有任何关系的简单实体。但是 获得1分和2分(如下所述)我必须经历所有 ManagedObjects和我认为这不是最好的方式。
    2. 使用setPropertiesToFetch:。我认为这是一个好方法,但我不确定是不是 可以让我的数据库如此简单,没有任何关系 喜欢(国家 - >地方)
    3. 我想创建三个实体Country, 地方,细节。并从不同的实体加载必要的数据。 但这是我第一次使用CoreData,我不确定 有意义还是没有?
    4. P.S。这是一个简单的例子。真正的数据库可以更大更复杂。

1 个答案:

答案 0 :(得分:1)

这个例子很简单,你可以从简单的事情开始:

enter image description here

如果您忽略数据库,这就是您建模的方法 - 幸运的是,CoreData将为您处理持久性,您可以在不考虑表格的情况下使用模型

点击某个国家/地区后,您会对效率产生担忧。您应该使用NSFetchedResultsController来有效地将数据批处理到UI并使用tableView。您只需设置NSFetchedResultsController即可使用谓词:

[NSPredicate predicateWithFormat:@"country == %@", self.selectedCountry];

旁注:

您应该始终剖析以确定是否存在真正的问题,而不是处理估算意见