iPhone应用之间的Core Data存储共享

4

同一开发者签名的两个不同iPhone应用程序之间是否可以共享核心数据存储?我想开发一个应用程序,其中一个iPhone应用程序将保存一条数据流,然后另一个应用程序可以读取该数据。这是否可能?非常感谢!

5个回答

5

不,这是不可能的。iPhone应用程序运行在沙箱中,并且无法访问其他应用程序的数据存储。

编辑:

阅读其他答案后:是的,自定义URL是可能的。并且可以通过它传输数据,但是,在我看来,我不建议使用此过程传输超过5kb的数据。没有故障保护:没有事务和关系。


正如我所想。但问一下也无妨。 - futureelite7

3
现在在iOS 5中,使用iCloud您可以使用相同的iCloud URL注册两个应用程序。在第二个应用程序初始化时,第一个应用程序的核心数据存储会被更多/更少地复制到第二个应用程序中。这可能需要一些时间 - 因此,您需要在后台线程中启动persistent store controller,否则您的应用程序将被看门狗计时器杀死。
但是,还有一些注意事项。
- 看起来并不完全正确。来自核心数据数据库的某些记录似乎没有被复制。根据我的经验,似乎是随机的哪些记录没有到达。也许与原始存储的一致性有关。
- 此后,两个应用程序似乎无法保持同步,与两个不同的iDevice上的同一应用程序相反。
调试有点麻烦,因为从一个iDevice传输到另一个iDevice需要10-20秒,而从同一iDevice上的一个应用程序进行更改似乎需要无限时间才能使另一个应用程序与相同的iCloud URL注册。
因此,总之-您可以在第二个应用程序的init中使用iCloud复制大多数记录,但很难保持同步。

2
这可以通过 iPhone 上的自定义 URL 方案来完成,但有一些注意事项。
如果使用自定义 URL 方案,则只有一个应用程序“拥有”数据。其他应用程序必须从主应用程序导入数据... Mobile Orchard 对此进行了文章,介绍了将数据从免费应用程序移动到付费应用程序的方法。

http://www.mobileorchard.com/lite-to-paid-iphone-application-data-migrations-with-custom-url-handlers/

但是我最近发现了一个MIT许可的库,叫做“SwapKit”,它可能正好满足您的需求... 从他们网站上的概述来看,听起来很不错,尽管我还没有尝试过。

http://infinite-labs.net/swapkit/

这可能有帮助,也可能没有,但是也可以看看“SpyPhone”:
SpyPhone显示了非越狱iPhone中一个恶意应用程序可以收集的数据类型。

http://github.com/nst/SpyPhone


1
你可以使用自定义URL方案将数据发送到第二个应用程序。
-t

1

还有系统剪贴板(我想它是NSPasteboard或者其他什么,现在没时间去查)它基本上就是剪贴板。我认为你可以把东西放在上面,然后使用一个URL启动另一个应用程序,告诉另一个应用程序检查剪贴板。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接