2009-08-18 1 views
0

Кто-нибудь знает, как легко прочитать тип словаря PSMultiValueSpecifier из NSUserDefault в элемент управления UITableView и сохранить изменения в NSUserDefaults с помощью iPhone SDK 3.0? Если да, можете ли вы опубликовать определенный код, чтобы эффективно это сделать?читает тип словаря PSMultiValueSpecifier от NSUserDefault в UITableView

ответ

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"];

 Смежные вопросы

  • Нет связанных вопросов^_^