Один предпочтения для двух приложений - PullRequest
4 голосов
/ 05 ноября 2010

У меня есть два приложения с идентификаторами: com.myCompany.mayApp и com.myCompany.mayAppPro. Как я могу использовать один преф файл com.myCompany.mayApp.plist для двух этих приложений? Возможно ли использовать класс NSUserDefaults для этого?

Ответы [ 2 ]

5 голосов
/ 08 ноября 2010

Взгляните на следующие методы в 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.

Недостатком этих методов является то, что они читают и записывают все содержимое файла. Если количество сохраняемых элементов не очень велико, то обычно это не проблема.

0 голосов
/ 05 ноября 2010

Я думаю, вам придется использовать API-интерфейсы CFPreference для установки общих значений, но вы можете читать значений, используя NSUserDefaults, добавив комплект к пути поиска общего Экземпляр NSUserDefaults. Конечно, вы можете прочитать значения, используя API CFPreference.

если ваши настройки сложны, и вы хотите использовать привязки какао, вы также можете написать свой собственный интерфейс, который заключает в себе конфигурацию keys / value / domain / host / user.

...