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

标签 objective-c cocoa nsuserdefaults

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

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

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

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

有人可以向我展示主应用程序和有效的后台/帮助应用程序的代码吗?提前致谢。

最佳答案

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

- (void)addSuiteNamed:(NSString *)suiteName  

这仅适用于读取设置,不适用于写入。

关于objective-c - 如何在 OS X 中的两个应用程序之间共享 NSUserDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8182417/

相关文章:

objective-c - XCode 8 - 如何解决 XCode 8.0 版的自动调整大小问题?

objective-c - 将 NSString 转换为 NSDate。损失了 1 天

cocoa - 来自 YouTube 的 native (非 WebView )流媒体?

cocoa - NSTableView 中 Check 类型的 NSButtonCell 不允许更改值

iphone - ViewDidLoad 方法不保留变量?

objective-c - 带有 NSWindowTitleVisibilityNone 的 NSWindow 将不正确的框架保存为用户默认值?

ios - 设置 nil UserDefaults 时出现 NSInvalidArgumentException

ios - 尝试隐藏页脚/页眉时 collectionView.performBatchUpdates 崩溃

objective-c - 如何在 Swift 中打印此方法的最终结果?

objective-c - 混合使用 Objective-C 和 C++ 时出现未知类型名称 'class'