可以使用安全应用程序组在主应用程序和辅助应用程序之间共享首选项,并且-[NSUserDefaults initWithSuiteName:]
:
安全应用程序组
为了让多个应用程序共享一个公共容器,您需要将com.apple.security.application-groups
权利(在您的主应用程序和辅助应用程序中)设置为一个公共标识符,例如@"com.company.my-app-suite"
. 有关详细信息,请参阅将应用程序添加到组。
用户默认套件
根据OS X 10.9 的 Foundation 发行说明:
对于属于安全应用程序组的应用程序,NSUserDefaults“套件”API(-initWithSuiteName:、-addSuiteNamed: 和 -removeSuiteNamed:)将在组中的应用程序共享并存储在组容器中的套件上运行,如果套件标识符是组的标识符。
所以你会想在你的应用程序委托(或类似的)中做这样的事情:
- (NSUserDefaults *)sharedUserDefaults {
static NSUserDefaults *shared = nil;
if (!shared) {
shared = [[NSUserDefaults alloc] initWithSuiteName:@"com.company.my-app-suite"];
}
return shared;
}
并使用它而不是[NSUserDefaults standardUserDefaults]
在您的两个应用程序中使用。