gpt4 book ai didi

iphone - 在 Cocoa 中实例化模型对象的层次结构时如何减少内存占用?

转载 作者:行者123 更新时间:2023-12-03 19:47:19 25 4
gpt4 key购买 nike

我正在使用基本 NSObject 为 iPhone 编写一个测验应用程序代表模型的子类。在运行时,各种 Controller 实例化模型类,并用从磁盘上的 plist 读取的数据填充它们。

模型类代表多项选择测验的基本层次结构:

  • 一个应用程序有多个测验
  • 一个测验有很多问题
  • 一个问题有多个答案

目前,当QuizController类加载其 Quiz对象,它填充其 questions NSArray属性 Question实例,以及每个 Question实例初始化后,它们各自初始化自己的NSArrayAnswer实例。

我认识到加载测验时不需要内存中的每个问题,我只需要Quiz中某个索引处的问题。实例的questions大批。

我认为某种数据源协议(protocol)或延迟加载模式将有助于减少在该系统上加载任何特定测验时产生的内存占用,但我不确定如何实现。我非常感谢社区在以下方面提出的任何建议:

这里适合使用什么模式?简短的代码片段对于我理解如何开始实现它也非常有帮助。

最佳答案

我完全赞成适当的设计以最大限度地减少内存使用,但有时你也必须务实。

在旧设备上,您的应用至少有 20 MB 的可用内存,因此我实际上不确定在延迟加载问题上花费大量时间是否有意义。

您可能会在没有注意到的情况下轻松地将数百个问题加载到内存中。

我的建议:从非懒惰的方式开始。使用 Instruments 查看内存使用情况。如果可以接受,那就离开它。如果您正在挑战极限,那么请投入时间进行优化。

关于iphone - 在 Cocoa 中实例化模型对象的层次结构时如何减少内存占用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2353515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com