Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在两个本地iOS应用程序之间共享数据对象的最佳方法_Ios_Ios8_Url Scheme_Data Sharing - Fatal编程技术网

在两个本地iOS应用程序之间共享数据对象的最佳方法

在两个本地iOS应用程序之间共享数据对象的最佳方法,ios,ios8,url-scheme,data-sharing,Ios,Ios8,Url Scheme,Data Sharing,我正在寻找关于在同一台设备上的两个iOS应用程序之间共享相对复杂的数据对象的最佳工具的建议 我有一个房地产投资应用程序,我们称之为应用程序a,它允许用户输入有关潜在投资财产的数据,并计算重要的财务指标,如投资回报率。所有属性数据都是使用我们称之为属性的对象中的核心数据持久化的 我正在开发应用程序B,它从应用程序a导入一个属性对象,并创建一个PDF报告,用户可以发送给其他投资者。属性对象不需要在应用程序B中持久化,只临时用于创建pdf文件。我希望用户能够从应用程序B打开应用程序A并选择一个属性,类

我正在寻找关于在同一台设备上的两个iOS应用程序之间共享相对复杂的数据对象的最佳工具的建议

我有一个房地产投资应用程序,我们称之为应用程序a,它允许用户输入有关潜在投资财产的数据,并计算重要的财务指标,如投资回报率。所有属性数据都是使用我们称之为属性的对象中的核心数据持久化的

我正在开发应用程序B,它从应用程序a导入一个属性对象,并创建一个PDF报告,用户可以发送给其他投资者。属性对象不需要在应用程序B中持久化,只临时用于创建pdf文件。我希望用户能够从应用程序B打开应用程序A并选择一个属性,类似于照片选择器


我最初的直觉是使用URL方案来解决这个问题。这是满足我需求的最佳解决方案吗?

选项不多,只有少数几个真正需要两个应用程序由同一个开发人员开发(这里似乎就是这样)

最简单的方法是将共享的、私有的、命名的粘贴板(
UIPasteboard
)与自定义URL方案结合使用

应用程序A可以将数据放入粘贴板,然后使用其自定义URL方案启动应用程序B。当然,这两个应用程序都必须进行编码,以了解数据是如何写入粘贴板和粘贴板名称的。尽管粘贴板的名称可以作为自定义URL的一部分传递

一旦应用程序B生成PDF,则可能会发生相反的过程。应用程序B可以将PDF放入粘贴板,然后使用其自定义URL方案启动应用程序A。然后应用程序A可以从粘贴板获取PDF并将其呈现给用户


或者,如果有意义,应用程序B可以使用
UIDocumentInteractionController
让用户选择如何处理PDF。这当然取决于您的需要。

应用程序a中的
UIDocumentInteractionController
是否可以满足您的需要,生成PDF并将其传递给应用程序B,而不是应用程序B生成PDF?只是把它扔掉,因为它的使用和实现相对简单。你甚至可以在应用程序A中的
UIDocumentInteractionController
中发送PDF,这可能意味着你根本不需要应用程序B!如果我不理解您的用例,我可能会错。这似乎是最好的解决方案。我在这里找到了一个关于这种方法的很好的教程。谢谢。说清楚,我指的是带有URL方案的自定义粘贴板