Кто-нибудь знает, как легко прочитать тип словаря PSMultiValueSpecifier из NSUserDefault в элемент управления UITableView и сохранить изменения в NSUserDefaults с помощью iPhone SDK 3.0? Если да, можете ли вы опубликовать определенный код, чтобы эффективно это сделать?читает тип словаря PSMultiValueSpecifier от NSUserDefault в UITableView
0
A
ответ
0
Прежде всего, чтобы лучше получить доступ к значениям спецификатора внутри пакета, я использовал следующий код, чтобы превратить их в словарь.
NSString* settingsBundle = [[[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"bundle"] stringByAppendingPathComponent:@"Root.plist"];
NSDictionary* rootPlist = [NSDictionary dictionaryWithContentsOfFile:settingsBundle];
if (rootPlist == nil)
return nil;
NSArray* specifiers = [rootPlist objectForKey:@"PreferenceSpecifiers"];
NSDictionary *multiValueSpecifier = nil;
for (NSDictionary *specifier in specifiers)
{
if ([[specifier objectForKey:@"Key"] isEqualToString:speficierKey] == YES &&
[[specifier objectForKey:@"Type"] isEqualToString:@"PSMultiValueSpecifier"] == YES)
{
multiValueSpecifier = specifier;
break;
}
}
if (multiValueSpecifier == nil)
return nil;
NSArray* titlesArray = [multiValueSpecifier objectForKey:@"Titles"];
NSArray* valuesArray = [multiValueSpecifier objectForKey:@"Values"];
NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:titlesArray
forKeys:valuesArray];
return dictionary;
Ну теперь, если из вашего пользовательского интерфейса вы сделали выберите то, что вам нужно хранить ключ и не значение словаря.
[[NSUserDefaults standardUserDefaults] setObject:dictionaryKey forKey:@"myMultiValueSpecifier_preference"];