2009-08-18 7 views

Antwort

0

Zum besseren Zugriff auf die Spezifiziererwerte im Paket habe ich den folgenden Code verwendet, um sie in ein Wörterbuch umzuwandeln.

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; 

Nun, wenn jetzt von Ihrem UI Sie wählen etwas tat, was Sie brauchen den Schlüssel zu speichern und nicht den Wert des Wörterbuchs.

[[NSUserDefaults standardUserDefaults] setObject:dictionaryKey forKey:@"myMultiValueSpecifier_preference"];

Verwandte Themen