gpt4 book ai didi

iOS 应用内购买内容集成

转载 作者:行者123 更新时间:2023-11-29 02:42:27 24 4
gpt4 key购买 nike

我有一个核心数据模型,其中有五个具有各种关系的模型。大多数时候,这些数据是由用户在设备上创建的(实体包括 jpeg 和描述性文本等),并存储在 sqlite 持久存储中。

但是,我还想提供应用内购买,每个购买都包含五个实体中三个实体的数据。其他两个实体仅与用户在设备上创建的核心数据对象相关,因此不会成为应用内购买的一部分。任何一次下载的数据量都很小(100-300K)。

下载购买的内容后,我需要能够将其集成到我的核心数据存储中。所以,我试图了解最好的(或至少是“好的”)方法。

我目前的想法是将这三个实体作为 SQLite 表进行分发,并将其导入到 Core Data 中。不过,我想知道是否有人可以提出一个我忽略的更好的选择。我不是在这里寻找代码(嗯,那太好了,但是......)。我还需要在一台设备上导出用户输入的数据以转移到另一台设备上[我希望通过 Airdrop 实现这一点,但这是一个不同的故事]。

任何建议都将不胜感激,即使有点古怪。

最佳答案

使用 Core Data 生成的 SQLite 文件是一个合理的解决方案。您应该知道用于生成和读取数据的 SQLite pragma 应该是一致的,并且要知道不同的选项可以创建多个文件(所有这些文件都是必需的)。参见 Technical Q&A 1809有关默认编译指示的更多详细信息,以及 WWDC 2013 session “核心数据和 iCloud 的新功能”。特别要注意的是,不建议将 WAL 的默认日记模式用于将要移动的文件(日记模式 DELETE,旧方法可能更可取)。

简而言之,应用程序将下载 Core Data 生成的 SQLite 文件,然后您将执行迁移以将这些文件导入商店。请注意,开箱即用的迁移管理器不会防止重复,您需要实现自己的迁移过程才能做到这一点(您可能会想要这样做,因为相同的内容可能会被多次导入).

这个过程的一个例子是......

  1. 下载您需要导入文件系统某处的文件。
  2. 使用下载文件的 URL 将新的 NSSQLiteStoreType 持久存储添加到 NSPersistentStoreCoordinator:

[coordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:configuration URL:downloadedStuffURL options:options error:&error]

请注意,我还建议将 NSReadOnlyPersistentStoreOption 作为选项的一部分,这样就不会尝试写入这些文件。

  1. 使用您的主要应用程序数据存储 URL 作为目标执行迁移:

    store = [协调器 persistentStoreForURL:downloadedStuffURL]; sqlStore = [coordinator migratePersistentStore:store toURL:applicationStoreURL options:options withType:NSSQLiteStoreType error:&error];

好了。位于 downloadedStuffURL 的商店中的数据现在将被导入位于 applicationStoreURL 的商店中。 downloadedStuffURL 存储将从协调器中删除,并添加 applicationStoreURL 存储和导入的数据。

关于iOS 应用内购买内容集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25595741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com