当iOS应用程序“加载”时,它们会做什么?

4
大多数应用程序都有加载屏幕,这可能是为了防止游戏出现问题,并预加载后续需要的所有数据。我正在开发一个游戏,它每隔几帧就会跳过一次,这可能是因为渲染到屏幕上的对象的图像数据没有被保存在内存中所致。那么程序员实际上是如何在整个应用程序运行期间保留这些数据的呢?我可以考虑使用数组,例如 NSArrayNSMutableArray 来保存图像,但我仍然难以看到这将如何改善应用程序的性能。也许我完全偏离了主题。对于这个领域有经验的人的建议将不胜感激。
编辑:对于投票关闭问题的人,我的问题更具体地说是:iOS 游戏通常使用哪种方法将其数据加载到活动内存中,在运行时轻松并低开销地访问?

我不是专家,但根据您的游戏类型,我建议使用tmx映射。 - maelswarm
Fitzy,“苹果”在显示**实际'加载屏幕'**时做一些装载工作。在95%的应用中,您切换到的第一个场景具有与相同加载屏幕图像完全匹配的图像。但是随后就是“您”进行自己的加载。很难说在自己的加载期间应该做什么。“什么”取决于所涉及的游戏。当然,尝试从“磁盘”加载图像进行实验。 - Fattie
1个回答

0

我看到过一些应用程序在加载时下载配置和元数据,有些还会下载图像和音频文件。通常它们将数据存储在文档或缓存文件夹中,这样它们就不必在游戏期间等待下载。

我遇到的另一种技术是下载一个zip文件并将其扩展到缓存目录中。大多数这样的应用程序下次不会再加载文件,除非需要新的内容。

不要将图像加载到内存中,也不要放在nsarray或nsmutabearray中。你没有足够的内存来缓存这样的图像。你应该预先下载它们。

编辑:

你可以利用应用程序加载阶段从服务器下载更多资源(图像、音频、plist文件),但在它们被下载并存储在文件系统中后,它们应该被视为存在于你的IPA中的资源。只有在需要时才应该将它们加载到内存中。


那么你的意思是应用程序通常利用缓存来存储图像数据? - Fitzy
@Fitzy 当你的应用程序启动并下载不在应用程序IPA中的资源(例如更多游戏关卡资源)时,你应该将这些数据存储在文件系统中,缓存目录是一个很好的选择。比文档目录更好。 - ekeren

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接