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