有谁知道如何轻松地将字典类型 PSMultiValueSpecifier 从 NSUserDefault 读取到 UITableView 控件中并使用 iPhone SDK 3.0 将更改保存回 NSUserDefaults?如果是这样,您可以发布一些特定的代码来有效地做到这一点吗?
问问题
677 次
1 回答
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 中选择了一些您需要存储 KEY 而不是字典的 VALUE 的东西。
[[NSUserDefaults standardUserDefaults] setObject:dictionaryKey forKey:@"myMultiValueSpecifier_preference"];
于 2010-11-10T09:03:38.870 回答