在 IOS 应用程序中使用数据库

Posted

技术标签:

【中文标题】在 IOS 应用程序中使用数据库【英文标题】:Using Database in an IOS Appp 【发布时间】:2017-05-15 21:27:55 【问题描述】:

这似乎是一个典型的谷歌问题,但在花了一个小时阅读各种东西之后,我比我希望的要困惑得多。

我正在开发一款游戏,我有一堆数据,最好将其存储在数据库中(有关怪物的信息,例如关卡精灵等)。现在我还想在以后进行应用内购买,从我读到的内容来看,firebase 是一种存储应用内购买信息的好方法(哪个用户获得了什么,高分等)。

如果我错了,请纠正我:关于怪物等的所有信息。还应该存储在数据库中,最好是内置应用程序数据库。为此,我计划使用 sqllite 或核心数据。我假设由于 firebase 是基于云的,因此从那里加载数据只是为了开始游戏并不明智,因为用户必须始终连接到它。 (再次,如有错误请更正)

无论如何,我打算使用 sqllite 或核心数据将游戏信息存储在应用程序内,这样任何用户都无法修改它。对于应用程序购买中的高分等数据。我打算使用firebase。

所以我的问题是我是否走在正确的轨道上,或者我所说的一切都是垃圾,还有更好的方法......

非常感谢您的帮助。

【问题讨论】:

【参考方案1】:

对于应用内购买,我建议使用这个库:https://github.com/kishikawakatsumi/KeychainAccess 即使用户删除您的应用然后再次下载,数据也不会丢失。在钥匙串访问中存储购买信息很方便,因为用户不需要单击恢复购买按钮来获取他之前购买的东西(如果他在某个时候删除了应用程序)。

import KeychainAccess

let keychain = Keychain(service: "com.myservice.myapp")

//when a user buys call this:
self.keychain["hasBoughtAcceess"] = "yes"

//to check if user has bought:
if(self.keychain["hasBoughtAccess"] == "yes") 
    print("user has bought")

else 
   print("user has not bought")

【讨论】:

感谢您的回答。我会赞成它,因为它回答了我的部分问题。我可以问你关于firebase的问题,例如,如果我把所有的销售都保存在那里,理论上我也可以向某些用户添加项目(更像是解锁项目)吗? 是的,你可以,但你必须以某种方式识别每个用户,并且用户需要有互联网连接。如果您使用 sqlite,那么您可以将信息存储在用户手机上,无需互联网连接。 再次感谢您忽略了该问题的答案。好吧,我将使用核心数据获取一般信息,并通过 self.keychain 保存购买信息。我只是担心用户可能会以某种方式对其进行修改

以上是关于在 IOS 应用程序中使用数据库的主要内容,如果未能解决你的问题,请参考以下文章

在 Phonegap iOS 应用程序中使用预填充数据库

登录表单中的 IoS 自动填充数据在科尔多瓦应用程序中为空(使用角度)

在 IOS 应用程序中使用数据库

如何在使用 sqlite 的 ios 应用程序中使用“已提交”隔离级别?

在 iOS 应用程序中使用 plist 为多步骤表单保留数据

iOS:使用 CoreData 的聊天应用程序