0

我正在开发一款 iPad 游戏,可让您使用 StoreKit 购买新的游戏关卡(基本上是一组与某些标题和描述相关的图片)。这些图片集存储在云中。StoreKit 编程指南并没有真正提供有关如何从服务器获取内容的提示,我一直在弄清楚什么是好的设计实践。我想到了几个实现:

  1. 获取整个内容作为压缩存档并在客户端解压缩存档,遵循有关目录和文件的已知约定,并检查目录是否存在以了解用户购买了哪些附加级别。
  2. 一次获取一张图片的内容,然后将集合序列化并存储在与NSKeyedArchiver产品 ID 具有相同名称的文件中。要检查用户是否购买了特定套装,我会检查是否存在名为 Product ID 的文件。
  3. 与 2 相同,但使用 Core Data 框架。

我认为 Core Data 解决方案的优势在于图像数据在真正请求之前不会被加载(因为 iPad 上的内存限制非常低)。内存优化可能很重要,因为我需要显示这些图片的缩略图,而无需在内存中加载整个完整大小的集合。压缩归档解决方案也有这个优势。

你会建议什么做法?

4

1 回答 1

0

您在这里将两个单独的问题混为一谈:如何获取内容以及如何将其存储在设备上。

要获取内容,最好的办法可能是获取某种存档并在设备上取消存档。这个存档可以是一个 zip 文件、一个 XML 文件,其中图像 base64 编码为某些节点的值,或者是自定义二进制文件格式,这并不重要。我会避免单独下载每个单独的资源,因为这很容易让您遇到仅部分下载数据的情况。

获得存档后,您需要将其解压缩并将内容存储在设备上。是否将其存储为目录结构中的文件、文件中的序列化 NSDictionary 或保存在 Core Data 中的对象取决于您。目录结构和 Core Data 解决方案都具有您可以根据需要轻松加载单个资源的优势。任何一个都是有效的选择,使用最适合您的情况或您更舒服的一个。

于 2011-02-27T18:45:28.987 回答