Iphone 是否有向客户提供应用内购买内容的建议方法?

Iphone 是否有向客户提供应用内购买内容的建议方法?,iphone,serialization,core-data,ipad,storekit,Iphone,Serialization,Core Data,Ipad,Storekit,我正在开发一款iPad游戏,可以让你用StoreKit购买新的游戏关卡(基本上是一组与某些标题和描述相关联的图片)。这些图片集存储在云中。《StoreKit编程指南》并没有真正给出如何从服务器获取内容的提示,我一直在想什么是一个好的设计实践。 我想到了几个实现: 按照已知的目录和文件约定,将整个内容提取为压缩存档,并在客户端上解压缩存档,然后检查目录是否存在,以了解用户购买的其他级别 一次获取一张图片,然后使用NSKeyedArchiver将集合序列化并存储在与产品ID同名的文件中。要检查用户是

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

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


    您建议采取什么做法?

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

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

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