您在 Xcode 的 xcassets 中存储了多少图像 Can/Should?

How Many Images Can/Should you Store in xcassets in Xcode?

我正在尝试在 xcassets 中为一个项目存储大量图像。大约 2,000。然而,它们都非常 small/highly 优化,每个只有 3-5kB 左右,所以总大小可能是 6-10MB。这会导致内存问题吗?这个不推荐吗?

我知道我可以让用户根据需要从服务器下载它们,但如果我可以直接从应用程序下载中包含它们会更容易。

How many images can you store in XCAssets?

嗯...根据Apple on Maximum build file sizes:

Your app’s total uncompressed size must be less than 4GB

所以技术上可以存储符合此限制的尽可能多的资产。
它不会导致内存问题,因为这些图像存储在应用程序的包中,最终存储在磁盘上。

它只会增加应用程序的下载大小...暂时。一旦它们 used/displayed.

就会影响应用程序的内存

最好的例子是游戏,它们通常有很多资产,而且几乎总是在应用程序的捆绑包中。在某些情况下,您甚至会下载包含更多资产的扩展包,但您很少会看到游戏美术下载,至少在玩游戏时不会,因为无论是游戏还是简单的应用程序,流畅度都是一个关键因素。


Around 2,000. However, they are all very small/highly optimized at only around 3-5kB each, so the overall total will be maybe 6-10MB.

首先,10MB 几乎没什么可担心的,但无论如何,关键是如果您同时加载所有 2000 张图片,即每张图片加载 UIImageView,仅 然后它们会被加载到应用程序的内存中。
无论您是必须从应用程序的捆绑包中加载图像还是必须从服务器下载图像,这都无关紧要。


How many images should you store in XCAssets?

现在就看你了。

在决定之前请考虑以下因素:

  • 这些图像可能会改变吗?
  • 我的用户需要全部 2000 张图像吗?
  • 我们要维护 2000 张图片的 url 列表吗?
  • 我们需要确保图片下载正确吗?
  • 用户介意等待几毫秒来加载图像吗?
  • 如果图像因任何原因未下载,那么适当的失败机制应该是什么?

看你如何回答上面的问题,你就会知道你需要走什么样的路。