我目前正在开发两个应用程序App1
,将文件从 Dropbox 下载到 iPad,以及App2
. Dropbox 集成有点麻烦,我不想在这两个应用程序上都这样做。那么是否可以从可能访问它们的App1
地方保存这些文件?App2
我听说应用程序的沙盒化在 iOS6 中变得有点松散,但不确定有多松散。
我在这里看到了一些类似的问题,但它们似乎可以通过使用 URL 方案或将数据发送到其他应用程序来解决,这并不是我真正想要的。
解决此问题的任何其他想法将不胜感激。
这是可能的,但本地方法并不适合大文件。
您可以使用 Keychain 来存储少量数据,类似于 NSUserDefaults。优点是这可以在应用程序之间共享。参考http://shaune.com.au/ios-keychain-sharing-data-between-apps/
至于您的情况,您想在哪里共享文件,您可以将它们编码为字符串并存储在钥匙串中(我认为这是一个非常糟糕的主意),或者使用网络服务(如果您的目标是 iOS 5 及更高版本,只要两个应用程序的团队 ID 相同,iCloud 就可以解决问题)。请参阅http://developer.apple.com/library/ios/#documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AboutEntitlements.html
我更喜欢网络服务,iCloud 应该会让你更轻松。
还有另一种方法可以做到这一点,尽管这是一种非常丑陋的方法,因为它使您的信息对用户可见(无论如何,在时尚之后)。
可以在同一设备上的同一位置存储、读取和写入的唯一介质之一是图像。事实上,您可以将您的信息(文件、数组、Web 服务缓存等任何您想要的)写为图像的像素信息。然后,您可以将其存储在本地而不压缩到自定义相册中,并且其他应用程序可以访问相册中的“图像”并将它们解释为原始文件。您必须为您的图像滚动您自己的标题信息以指示文件格式等,并且用户将能够看到图像,尽管它看起来几乎完全是胡说八道。这是一种速记形式。
无论如何,我不希望你接受这个作为答案,但我想我会提出它作为一个示范,通过一些创造性的编码你可以绕过大多数障碍:)