2009-12-11 26 views
0

我可以在iPhone应用程序中使用哪些代码来获取和设置我编写的另一个应用程序的设置? (最好使用NSUserDefaults)如何使用其他应用程序的设置

+0

单击添加到看到几个答案,如http中的“NSUserDefaults的”标签://计算器。 com/questions/1868788/can-other-programs-read-my-nsuserdefaults-settings – cdespinosa 2009-12-11 08:00:00

回答

5

你根本无法做到这一点。每个应用程序都安装到它自己的文件夹中,并被赋予其自己的唯一用户标识。包含这些设置的文件位于其他应用程序的文件夹中,并且其权限设置为其他应用程序的文件。访问数据的唯一方法是使用与其他应用程序相同的应用程序标识符,在这种情况下,安装应用程序将覆盖旧的应用程序。

编辑:
当问题问要做到这一点NSUserDefaults的使用,特别是鉴于该解决方案。对于更新的问题,所提供的钥匙串方法或服务器方法都是合理的。

5

你不会能够与NSUserDefaults的拉这一关。

钥匙串,而在其C-内斯有点麻烦,比API NSUserDefaults的要有限得多,可能让你做到这一点。如果您可以将需要在应用程序之间共享的任何内容序列化为几个字符串,则可能值得尝试。

iPhone OS 3.x Release Notes

现在可以为你分担你创建多个应用程序之间的钥匙串项。共享项目可以让同一套件中的应用程序更轻松地进行互操作。例如,您可以使用此功能共享用户密码或其他可能需要您分别从每个应用程序提示用户的元素。

共享钥匙串项目涉及您的应用程序二进制文件设置适当的待遇。使用Xcode,您必须创建一个Entitlements属性列表文件,其中包含您的应用程序支持的权利。 iPhone开发指南中介绍了创建此文件的过程。有关您可以配置的权利的信息,请参阅Keychain Services Reference中的SecItemAdd功能的说明。

在运行时访问共享的项目包括使用Keychain服务编程接口,开发过程中设置了访问组。有关如何访问钥匙串的信息,请参阅钥匙串服务编程指南。

这里的Buzz Anderson's Simple iPhone Keychain Code。您可以使用它将钥匙/值对作为字符串存储在钥匙串中。这并不多,但也许比没有好。有关更多信息,请参见Apple's Keychain Programming Guide

0

你可以有一个应用程序将数据发送到服务器,那么其他应用程序可以从服务器获取数据。

你不能做到这一点NSUserDefaults的使用,但它可以做到的。

0

您可以使用共享剪贴板。它不安全,但两个应用程序都可以从同一个剪贴板读取和写入。您只需创建一个特定于应用程序的UIPasteboard。查看Apple开发人员网站上的UIPasteboard类参考以获取更多信息。

--Mike

0

你一定要看看UIPasteboard,所建议的 - 你可以创建你所创建(虽然什么都不会使用它们停止其他应用的应用中使用新的纸板,但人们真不可能)。 UIPasteboard通过重新启动/重新启动保持不变 - 直到创建应用程序被删除后才会存在。

你也可以看看在SwapKit libary(这看起来非常酷):

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

+0

更确切地说:您可以通过SwapKit发布一个“清单”(应用程序注册),以便其他SwapKit应用程序可以看到。这通常是一个包含类似于应用程序绑定之类的东西的静态字典,但您可以添加自定义密钥,只要它们不以“ILApp”开头即可。 (使用[ILSwapService registerWithAttributes:(dict)update:YES]以编程方式更改)。 〜SwapKit作者。 – millenomi 2010-02-12 08:45:00

+0

...(和[ILSwapService registrationForApplicationWithIdentifier:]来读取。API文档:http://infinite-labs.net/swapkit/docs/api/interface_i_l_swap_service.html) – millenomi 2010-02-12 08:55:40

相关问题