如何在OS X中的两个应用程序之间共享NSUserDefaults

时间:2011-11-18 12:27:01

标签: objective-c cocoa nsuserdefaults

我正在编写一个将提交到Mac App Store的应用程序。作为应用程序的一部分,有一个帮助程序/后台应用程序。我的主应用程序需要能够将持久性设置写入NSUserDefaults。我的帮助应用程序(可能在后台运行)需要通知这些更改,然后才能读取新的NSUserDefaults,以便它可以自行配置。

它的通知部分我并不太担心。我看到NSUserDefaults有一个名为NSUserDefaultsDidChangeNotification的通知,当持久默认值发生变化时会发送该通知。如果这不起作用,我总是可以使用分布式通知。

我似乎无法弄清楚如何使主应用程序的默认设置变得可供后台/帮助应用程序访问。我已经摆弄了以下NSUserDefaults的方法,但我没有到达任何地方。

 - (void)addSuiteNamed:(NSString *)suiteName
 - (void)setPersistentDomain:(NSDictionary *)domain forName:(NSString *)domainName

有人可以告诉我主要应用程序和后台/助手应用程序的代码吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用NSUserDefaults的addSuiteNamed:方法。

- (void)addSuiteNamed:(NSString *)suiteName  

这仅适用于阅读设置,而不适用于写作。