0

我可以在 iPhone 应用程序中使用什么代码来获取和设置我编写的另一个应用程序的设置?(最好使用 NSUserDefaults)

4

5 回答 5

5

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

编辑:
当问题要求使用 NSUserDefaults 执行此操作时,特别给出了此解决方案。对于更新的问题,提供的钥匙串方法或服务器方法都是合理的。

于 2009-12-11T07:59:50.187 回答
5

您将无法使用 NSUserDefaults 完成此操作。

Keychain 虽然在 C 方面有些麻烦,并且比 NSUserDefaults API 更受限制,但可能允许您完成此操作。如果您可以将需要在应用程序之间共享的任何内容序列化为几个字符串,那么可能值得一试。

iPhone OS 3.x 发行说明

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

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

在运行时访问共享项目涉及使用 Keychain Services 编程接口和您在开发期间设置的访问组。有关如何访问钥匙串的信息,请参阅钥匙串服务编程指南。

这是Buzz Anderson 的简单 iPhone 钥匙串代码。您可以使用它将键/值对存储为钥匙串中的字符串。这并不多,但也许总比没有好。有关更多信息,请参阅Apple 的钥匙串编程指南

于 2009-12-11T09:08:54.693 回答
0

您可以让一个应用程序将数据发送到您的服务器,然后另一个应用程序可以从您的服务器获取数据。

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

于 2009-12-11T17:03:45.917 回答
0

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

- 麦克风

于 2009-12-30T14:18:13.593 回答
0

你绝对应该看看 UIPasteboard,正如建议的那样——你可以创建一个新的粘贴板供你正在创建的应用程序使用(虽然没有什么可以阻止其他应用程序使用它们,但人们不太可能这样做)。UIPasteboard 通过电源循环/重新启动是持久的——它会一直存在,直到创建的应用程序被删除。

您还可以查看 SwapKit 库(看起来很酷):

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

于 2010-01-12T13:38:31.837 回答