Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 主-细节接口的核心数据实体设计_Ios_Cocoa Touch_Core Data - Fatal编程技术网

Ios 主-细节接口的核心数据实体设计

Ios 主-细节接口的核心数据实体设计,ios,cocoa-touch,core-data,Ios,Cocoa Touch,Core Data,我正在开发一个应用程序,它有一个主细节界面,显示用户可以深入查看的产品列表。初始化时,应用程序将从web服务加载(1000+)产品的摘要信息,并将其显示在表视图中。当用户选择特定产品时,应用程序会调用web服务以获取该产品的详细信息,并将其显示在详细视图中 我想使用核心数据框架在会话之间持久化这些数据 我可以想出两种方法来模拟这些数据 使用包含此对象所有属性的单个核心数据实体产品。初始化表视图时,这些实体将填充摘要数据。选择特定产品时,仅为该产品填充其余字段 使用两个核心数据实体,Product

我正在开发一个应用程序,它有一个主细节界面,显示用户可以深入查看的产品列表。初始化时,应用程序将从web服务加载(1000+)产品的摘要信息,并将其显示在表视图中。当用户选择特定产品时,应用程序会调用web服务以获取该产品的详细信息,并将其显示在详细视图中

我想使用核心数据框架在会话之间持久化这些数据

我可以想出两种方法来模拟这些数据

  • 使用包含此对象所有属性的单个核心数据实体产品。初始化表视图时,这些实体将填充摘要数据。选择特定产品时,仅为该产品填充其余字段
  • 使用两个核心数据实体,ProductSummaryProductDetail,它们之间具有摘要/详细信息关系ProductSummary包含由表视图加载的属性ProductDetail包含由详图视图加载的属性

  • 每种选择的优缺点是什么?选项1显然看起来更容易编码,但我是否在为以后存储内存使用问题?性能是否相当?

    对于您将拥有的对象数量,请选择选项2。将输入的数据和实体的属性保留为仅需要在电视中显示的内容。设置与细节的关系,并在细节VC进入时加载该关系


    除了4500行之外,我正在做类似的事情。我只存储我需要的,然后转向其他实体获取与对象相关的详细信息。

    过早优化。通过将本质上属于
    产品的属性划分为不同的实体,您正在使您的生活变得复杂。无论如何,您永远不会同时加载所有实体(或者至少不应该),并且未被使用的托管对象将保留为错误,因此您应该没有内存问题。@在我接受下面的答案后,Rog注意到了您的评论。。。My
    NSFetchedResultsController
    正在将产品分20批返回给My View Controller。假设我向下滚动到1000个产品列表的底部,我的内存中最多会有20个产品吗?很难说到底有多少产品会加载到内存中,因为对象的获取和故障处理是在后台自动进行的。我可以告诉你,我使用CoreData获取了4000多个项目的TableView,但我甚至没有收到内存警告。谢谢你的回答-我想你是对的-我一直在尝试减少编码!没问题。还有一条建议。如果计划实施搜索,请确保在筛选数据时保持较低的fetchlimit。这将使过滤更加灵敏。如果你需要我,我可以告诉你我在做什么。