Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何在OS X中的两个应用程序之间共享默认值_Objective C_Cocoa_Nsuserdefaults - Fatal编程技术网

Objective c 如何在OS X中的两个应用程序之间共享默认值

Objective c 如何在OS X中的两个应用程序之间共享默认值,objective-c,cocoa,nsuserdefaults,Objective C,Cocoa,Nsuserdefaults,我正在编写一个将提交到Mac应用商店的应用程序。作为应用程序的一部分,有一个助手/后台应用程序。我的主应用程序需要能够将持久设置写入NSUserDefaults。My helper应用程序可能正在后台运行,需要将这些更改通知我,然后才能读取新的NSUserDefaults,以便它能够适当地配置自己 我不太担心它的通知部分。我看到NSUserDefaults有一个名为NSUserDefaultsIDChangeNotification的通知,该通知在更改持久默认值时发送。如果这不起作用,我总是可以

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

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

我似乎不明白的是,如何使主应用程序中的默认值可供后台/助手应用程序访问。我已经摆弄了下面的默认设置方法,但我没有取得任何进展

 - (void)addSuiteNamed:(NSString *)suiteName
 - (void)setPersistentDomain:(NSDictionary *)domain forName:(NSString *)domainName
有人能告诉我主应用程序和后台/助手应用程序的代码吗?提前感谢。

您可以使用NSUserDefaults的方法

- (void)addSuiteNamed:(NSString *)suiteName  

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

我需要更多详细信息。这种方法几乎没有文档。我正在寻找主应用程序应该如何编写首选项,以及助手/后台应用程序如何读取这些首选项的具体示例。我的主应用程序和客户端应用程序都配置为使用应用程序沙箱。如果助手应用程序被配置为使用沙箱,那么它似乎无法读取主应用程序写入的NSUserDefaults。如果我禁用了应用程序沙盒,那么我就能够读取主应用程序的默认设置,只要我首先使用Parag建议的“AddSuiteName:”方法。