两个应用程序的一个首选项

时间:2010-11-05 14:08:21

标签: cocoa macos nsuserdefaults preferences

我有两个id-s应用程序:com.myCompany.mayApp和com.myCompany.mayAppPro。 如何为这两个应用程序使用一个pref文件com.myCompany.mayApp.plist? 是否可以使用NSUserDefaults类?

2 个答案:

答案 0 :(得分:5)

在NSUserDefaults中查看以下方法:

- (NSDictionary *)persistentDomainForName:(NSString *)domainName;
- (void)setPersistentDomain:(NSDictionary *)domain forName:(NSString *)domainName;
- (void)removePersistentDomainForName:(NSString *)domainName;

它们允许您读取和写入具有给定域名的首选项文件。一个例子是阅读Apple iApps的一些常见首选项:

NSUserDefaults* prefs = [ NSUserDefaults standardUserDefaults ];
NSDictionary* iAppsPrefs = [ prefs persistentDomainForName: @"com.apple.iApps" ];
NSArray* recentPaths = [ iAppsPrefs objectForKey: @"iTunesRecentDatabasePaths" ];

前面的代码读取了iTunes数据库文件的最新路径数组。

这些方法的缺点是它们读取和写入文件的全部内容。如果存储的数字项目不是很大,那么这通常不是问题。

答案 1 :(得分:0)

我认为您必须使用CFPreference API 设置共享值,但您可以使用NSUserDefaults 读取值,方法是将套件添加到搜索路径共享的NSUserDefaults实例。当然,您也可以使用CFPreference API读取值。

如果你的prefs很复杂并且想要使用cocoa绑定,那么你也可以编写自己的接口来封装keys / value / domain / host / user config。