2011-08-21 95 views
0

我试过谷歌这几天,我仍然很困惑,所以我想我会在这里尝试。Dropbox,核心数据和JSON

我有一个iPhone应用程序使用核心数据与SQLite数据库。我正在尝试使用Dropbox实现数据库的简单备份/恢复。

我下载了Dropbox SDK,并且我有一切运行良好,只要链接,上传和下载我的.sqlite文件。

但是,我不希望用户出于安全目的有权访问实际的.sqlite文件。一段时间以来,我一直在这些板子上看到JSON,所以我决定研究它。我认为这正是我需要的。

说起来容易做起来难。我从来没有与Java合作过,并且从未实现类似JSON的任何事情,所以我不得不尝试找出从哪里开始。

我基本上明白发生了什么,但我有一段时间搞清楚如何去做。我想我找到了一种将Core Data模型转换为JSON格式的方法(我在这里松散地使用了'think'这个术语)。但是,什么 - 我上传到Dropbox的究竟是什么?我是否以某种方式将模型(以JSON格式)和数据库结合起来?上传到Dropbox的是什么?我很抱歉,如果这看起来很明显,我真的不明显,我看了。

我愿意做这项工作,但似乎我可以在没有一些基本的指导和一个开始的90个方向。我不想尝试做任何事情,只要确定已更改的数据等等 - 只想备份/恢复整个数据库。我只需要一些基本的解释,并指出正确的方向。一个简单的核心数据样本项目将是巨大的。

我不是一个有经验的程序员,但我是一个快速学习者。只要简单地分解它...

在此先感谢。 JPK


谢谢安德鲁。我不想'放弃'我的应用程序的数据库结构,但我现在可以看到json字符串不会比那个区域的sqlite文件好多了。我是一个教自己的程序员(留在家里妈妈),所以这对我来说都很新。也许我想要加密?但无论如何,这是否允许iPhone应用程序?我记得当我上传二进制文件时,他们询问了有关加密的信息......我知道iCloud即将推出,而且我也计划实施这一功能,但由于可以免费同步的数据量有限,因此我希望以便能够做一个简单的备份。我的许多用户都要求它 - 除了iTunes之外的备份,这实际上不是一个很好的备份,因为您无法仅为一个应用程序恢复数据(您必须恢复iDevice上的所有应用程序)。嗯...有关如何上传文件的方式不容易阅读的任何建议?在这种情况下,加密是否是一种方式?

+0

我在看代码Marcus Zarra发布TouchJSON [链接](http://stackoverflow.com/questions/2362323/json-and-core-data-on-the-iphone),但我没有确定应该如何调用这些方法,以及如果我需要创建一个我的实体数组传递给 - (NSArray *)dataStructuresFromManagedObjects :(NSArray *)managedObjects。我是否最终将jsonString上传到DropBox? – SAHM

回答

1

JPK,

我想你在这里穿过多个流。

JSON是一种数据传输格式。 IOW,它几乎与您尝试的架构无关。您几乎可以肯定使用JSON与Dropbox进行通信。

我有一个问题:您为什么认为用户将无法访问您发送到Dropbox的任何数据?我怀疑你可能是错的。用户将可以访问所有内容。

你正在做很多工作。您已经在Dropbox上保存了.sqlite文件。如果你这样做是为了做备份,那么这些数据会在其他许多场所备份。换句话说,你的任务很可能不值一提。

我每天使用JSON,REST网络和核心数据。如果您有具体问题,我很乐意回答。

安德鲁

+0

我不认为这是一个坏主意,可以选择将应用程序数据备份到Dropbox。然而,我同意他正在做很多工作,将核心数据转换为JSON格式,无论哪种方式用户都能够读取数据......如果他真的要做备份,那么将它做到Dropbox并接受用户将是能够看到数据库。 –

0

而是拯救整个数据库,节省了plist文件到Dropbox的,你可以重建从数据库。假设你的数据库中有很多额外的东西,你不希望用户看到,否则只要备份数据库,如果它是所有用户生成的数据。

你也可以加密它,但为什么?仅仅添加加密意味着你必须回答“是”你使用加密,并且可能无法向特定公司销售,如果你选择加密 - 这是不被禁止的。