Ios 在Xcode项目中存储和更新图像的最佳实践

Ios 在Xcode项目中存储和更新图像的最佳实践,ios,swift,Ios,Swift,我正在构建我的flash card iOS应用程序,用SwiftUI语言复习我学习的日语。 问题是如何存储和更新我的图像(>500个图像)。请帮助我,任何建议都非常感谢,谢谢阅读我的帖子。500张图片可以有很大的尺寸。Appstore上发布的应用程序有大小限制,苹果不建议制作大型应用程序 将它们存储在服务器上,并动态加载所需的图像。此外,您将有可能更新您的图像,删除添加新的 如果您没有后端,您可以使用一些简单免费的东西(例如Firebase存储),或者在AWS上编写最少的代码 如果您需要将它们保

我正在构建我的flash card iOS应用程序,用SwiftUI语言复习我学习的日语。
问题是如何存储和更新我的图像(>500个图像)。请帮助我,任何建议都非常感谢,谢谢阅读我的帖子。

500张图片可以有很大的尺寸。Appstore上发布的应用程序有大小限制,苹果不建议制作大型应用程序

将它们存储在服务器上,并动态加载所需的图像。此外,您将有可能更新您的图像,删除添加新的

如果您没有后端,您可以使用一些简单免费的东西(例如Firebase存储),或者在AWS上编写最少的代码

如果您需要将它们保存在设备上,请将它们作为文件存储在Documents或其他apps文件夹中,不要使用CoreData(您只能在数据库中保留名称/URL列表)

加载要显示给用户的图像后,您可以预取下一组图像

使用Alamofire或SDWebImage从网络加载图像(我更喜欢最后一个)。这些框架可以对图像做很多有用的事情

要加载图像,请执行以下操作:

  • 您可以有一个图像列表(只是名称和URL的列表) 或
  • 您只能知道路径和名称模式,并动态生成链接(如

我想你是在问如何在一个Xcode项目中管理500多个映像。你可以将所有映像添加到项目中,并像加载任何映像一样加载它们。你可以使用资产目录,其优点是,它们允许你存储资源的不同版本,以便在不同的设备上使用,并且只存储开发人员需要的版本运行应用程序的ice将实际安装在设备上。有关资产目录的更多信息,请参阅和。但是,不管你如何分割它,管理500多张图像都会很麻烦。可能有更好的方法

管理应用程序中的所有这些图像不仅仅是开发人员的问题;将它们构建到应用程序中也会给用户带来问题。即使每个图像相对较小,但在应用程序中拥有数百个图像可能会使应用程序变得巨大。这意味着安装需要很长时间,并且应用程序将占用大量存储空间每次你发布一个新版本的应用程序,用更多的词,甚至只是为了修复一些小错误,用户将不得不重新下载所有的数据

相反,你应该考虑建立一个可以从服务器获取数据的应用程序。理想情况下,你可以把这个方法应用到你所有的应用程序的数据上,而不仅仅是图像。也许你会把你的闪存卡组织成几十个集合,这样你就可以很快地取出一组卡和相关的图像,并设置用户HA。暂时不使用的sn可以删除以释放设备上的空间。您可以在不更新应用程序的情况下更新一组闪存卡,并且当您更新应用程序时,您的用户不必再次下载所有数据


您已经说过您是初学者,所以这种方法可能看起来非常困难。没关系,您可以从一种更简单的方法开始,然后随着时间的推移不断改进。例如,您可以将所有图像放在服务器上,然后根据需要一次获取一个图像。您的闪存卡数据文件可能只包含一个包含单词和与这些单词相关的URL。在这里和其他地方有很多从URL加载图像的示例,所以我不打算提供相关代码,但这并不难找到。你越早开始考虑如何设计你的应用程序,以便它可以随着你添加越来越多的单词而扩展,维护应用程序就越容易ater.

谢谢你的建议,但对于我的初学者水平,你能给我一个例子或教程链接吗?Alex,我会深入Firebase,因为在谷歌搜索我的问题时,Firebase显示在第一位。非常感谢。我每天使用的最佳url是shorturl.at/arvw6。不幸的是,我无法快速找到关于它的信息,但我确信像你这样的聪明人会找到所需的教程。主要的-是了解方向。只需选择一个图像服务器和/或使用api与它们交互。我也建议尝试使用AWS bucket。因为我不知道(大多数情况下-不知道)你是否可以从Firebase存储中无链接地获取图像(只知道图像名称和路径).使用S3,您可以(我知道)。我同意您的看法-将图像本地存储在资产中-这是最简单的方法。无论如何,将图像存储在aws bucket上的部分,例如,然后加载-非常简单,对实践非常有用。(如果您已经登录,则最多需要10分钟)这就是我的想法,已经在asset文件夹中添加了500张图片,现在专注于设计和逻辑(应用程序流)。感谢你们从初学者的角度考虑解决方案。我完全同意你们的观点。