在用户之间共享用户默认值

Share user defaults between users

我正在使用用户默认设置来存储我的应用程序数据。

我有一些与同一台机器上的所有用户相关的全局数据。

我如何在他们之间共享这些数据?

NSUserDefaults' initWithSuiteName 无效。

我发现唯一的解决方法是写入根文件夹中的隐藏文件,但这对用户来说太明显了。

最接近的做法是让所有用户成为一个组的成员,然后创建一个包含共享数据的组可写文件。它可以是一个 plist,它甚至可以通过默认值 API 访问,假设您不需要同时进行多个写访问。

您可以使用 CFPreferences API 而不是 NSUserDefaults,将 kCFPreferencesAnyUser 作为用户名参数传递。但是,为所有用户设置默认值需要管理员权限。

您可以像 iTunes & the App Store 一样使用 /Users/Shared 目录。