是否有建议的方式将In App Purchase内容提供给客户?

时间:2011-02-27 15:58:00

标签: iphone serialization core-data ipad storekit

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

  1. 将整个内容作为压缩存档获取并在客户端上解压缩存档,遵循已知的目录和文件约定,并检查目录是否存在以了解用户购买的其他级别。
  2. 一次获取一张图片的内容,然后将带有NSKeyedArchiver的集合序列化并存储在与产品ID名称相同的文件中。要检查用户是否购买了特定的集合,我会检查是否存在名为“产品ID”的文件。
  3. 与2相同,但改为使用Core Data框架。
  4. 我认为核心数据解决方案的优势在于,在真正请求之前不会加载图像数据(因为iPad上的内存限制非常低)。内存优化可能很重要,因为我需要显示这些图片的缩略图,而无需在内存中加载整个完整大小的集合。压缩 - 归档解决方案也具有这一优势。

    你会建议做什么?

1 个答案:

答案 0 :(得分:0)

您在这里混淆了两个不同的问题:如何获取内容以及如何将其存储在设备上。

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

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