【问题标题】:Core Data: Relationships and User Objects核心数据:关系和用户对象
【发布时间】:2013-04-05 19:16:36
【问题描述】:

我将 StackMob 与 CoreData(远程数据库)一起使用,但我认为这是一个通用的 Core Data 问题。

我有 3 个实体:

  1. 用户(登录)
  2. 汽车
  3. 自行车

每个实体都有几个属性。

一个用户可以有多个 Cars 和 Bikes 对象(一对多关系)。汽车和自行车只能有一个所有者(用户)(反对一关系)。

现在假设我们有 2,000 个用户。每个用户都是汽车经销商,在 CoreData 中存储了 500 辆汽车和 300 辆自行车记录/对象。我希望用户根据汽车和自行车的属性进行获取。我计划为此使用谓词。为了减少不断的获取请求,我还计划使用缓存。

但是,我的问题是:

  1. 我应该如何保存每个用户下的记录/对象? CoreData 中有这个术语吗?

  2. 我希望用户登录并能够仅在用户创建的对象中根据其属性(型号、制造商、日期戳等)获取所有汽车/自行车。我想我要避免的是当用户根据 Cars and Bikes 实体中的属性执行获取请求时,它只在自己的用户对象下搜索。我不希望获取请求搜索所有其他用户的对象,因为这将是一种浪费,因为我担心这会减慢应用程序的速度。在 CoreData 中进行此设置的最佳方式是什么?

刚刚浏览了两本核心数据书籍,我不知道如何处理这个问题。我知道我不是最聪明的,所以我向专家寻求建议。谢谢你。

【问题讨论】:

  • 这个应用程序是按用户分发的吗?如果是这样,您只需为特定用户保留汽车和自行车的本地对象图(如何从服务器获取信息是另一回事)。
  • 谢谢。用户最终需要与一个和另一个通信,即在汽车/自行车上提供报价并检查库存。我仍然可以通过保留本地对象图来实现这一点吗?能详细点吗?
  • 还有当用户获得新设备并首次登录时会发生什么。他将如何获得数据副本?

标签: ios core-data nsfetchrequest nsfetchedresultscontroller datapersistance


【解决方案1】:

CoreData 实际上经过了非常出色的优化。你需要的是一个 NSSearchPredicate 和 NSFetchedResultsController。这些都很复杂,我不能只是“告诉”你如何使用它们。我发现这个公开课程非常有帮助

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/

它使用核心数据在 iOS 中构建网站获取应用程序。检查核心数据集,如果您不知道他在说什么,请返回并观看一些较早的内容

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多