【问题标题】:Storing .png images in an ios app?在 ios 应用程序中存储 .png 图像?
【发布时间】:2012-09-28 12:50:39
【问题描述】:

我正在创建一个将使用超过 1200 个 .png 图像文件的 iphone 游戏,所有图像组合在一起的大小为 11mb,我想知道存储它们的最佳方式是什么,我打算使用 s3亚马逊存储,但我希望它们在资源文件夹中与应用程序分开,这样用户也可以离线玩。因此,我想就在缓存和优化与 IOS 应用程序一起使用的 .png 文件方面存储图像的最佳方式获得任何意见。谢谢

【问题讨论】:

  • iOS 和 Xcode 非常擅长将 PNG 文件优化到最大效率。也许您需要采取不同的方法。
  • 您想在运行时保存它们还是在开发到资源时保存它们?
  • 我不打算在整个应用程序中使用它们,我不保存图像,只是我选择的动物图像?用户不上传任何照片!

标签: iphone ios


【解决方案1】:

只需将它们拖入 xcode。 11 MB 不算多,苹果已经提高了超过 3G/Edge 的下载限制。

一旦你将它们放入你的项目中,你就可以像这样称呼它们

UIImage *myImage1 = [UIImage imageNamed:@"1.png"];

它并没有变得更简单。

如果您没有将文件放在项目中并且必须下载它们,则将它们下载到您的 Documents 文件夹中。您可以在该目录中放置您想要的任何内容,因为它仅适用于您的项目,其他项目无权访问它

【讨论】:

  • 如果他处理 1200 张图像,也许他应该使用 imageWithContentsOfFile 而不是 imageNamed。后者的缓存逻辑是一些争论的主题。如果图像太小(如果图像的一小部分可能会在会话期间使用)也许不是问题,但虽然它很方便,但我会谨慎使用imageNamed。跨度>
  • 我完全同意,毫无疑问
【解决方案2】:

现在 11MB 并不算多,您的应用可以达到 50MB,并且仍然可以通过蜂窝网络下载,因此最好的解决方案是;

a) 别担心。将它们放在您的资源文件夹中。

如果您要拥有更多图像,那么最简单的解决方案是在应用程序有网络连接时简单地下载它们。您可以将它们存储在 Documents 文件夹中并将它们标记为不备份,这样它们就不会与 iCloud 同步。您也可以将它们存储在 Caches 文件夹中,但这会使它们更容易在任何时候消失,因此您需要有一个稍微复杂一点的机制来识别它们不再在磁盘上并重新拉入它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多