2009-08-18 4 views

답변

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; 

그럼 이제 UI에서 당신이 선택 짓을하면 당신은 키가 아닌 사전의 값을 저장해야합니다.

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