首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS开发:如何加强核心数据内存的使用?

iOS开发:如何加强核心数据内存的使用?
EN

Stack Overflow用户
提问于 2011-01-17 18:15:53
回答 1查看 1.1K关注 0票数 0

我对核心数据非常陌生,我仍然在学习它是如何在引擎盖下工作的。我的核心数据模型层次结构包含一个用户配置文件,其中包含一组使用一对多关系的十个不同级别,每个级别包含30个不同的谜题,也使用一对多的关系。

代码语言:javascript
复制
UserProfile (x1) -> Level (x10) -> Puzzle (x30), for a grand total of 311 objects per user profile

当用户依次解决谜题时,使用层次模型和拼图模型来存储用户的进度。当游戏第一次运行时,游戏从plist读取所有级别和拼图数据,并生成将用于存储用户玩游戏过程中的进度的Core数据对象(表行)。换句话说,核心数据对象的列表不是随着用户玩游戏而增长的,而是在游戏开始时创建的,对象的属性随着用户玩游戏而改变。我怀疑这是低效的,但我的问题仍然是一样的.

  1. 当我从核心数据加载用户配置文件时,是否也会将所有10个级别以及每个级别的30个谜题加载到内存中?我之所以这样问,是因为如果球员一次只打一个级别的话,我显然不需要所有的数据。
  2. 如果在加载用户配置文件时将所有的级别和拼图数据加载到内存中,我如何“懒惰地加载”所需的级别和拼图数据?当我使用分配工具运行我的游戏时,
  3. 显示它使用6MB的“总体”内存,当应用程序完全加载并处于主菜单中时。显然,随着用户深入到导航堆栈中,内存使用量也会增加。对于刚刚启动的应用程序来说,6MB的内存是否“很多”?
  4. 我注意到,当我注释掉从Core加载用户配置文件的代码行时,仍然使用6MB。这是否意味着我的核心数据对象对内存的影响可以忽略不计?

如果这些都是令人愤慨的问题,我很抱歉,我也为它们的长度道歉,非常感谢你的智慧!现在我要回到核心数据文档,我只是想在我继续自学的时候发布这些问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-17 18:37:13

这回答了你的“懒惰负载”问题。Core Data to-many relationships. Are they Lazy Load?

除非您看到性能问题,否则我不会担心6MB内存。您可以始终使用包含的实用程序来检查它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4716384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档