Est-ce que quelqu'un sait comment lire facilement un type de dictionnaire PSMultiValueSpecifier de NSUserDefault dans un contrôle UIPickViewer et enregistrer les modifications dans NSUserDefaults en utilisant iPhone SDK 3.0? Si oui, pouvez-vous poster un code spécifique pour le faire efficacement?Lire et mettre à jour un type de dictionnaire PSMultiValueSpecifier de NSUserDefault
0
A
Répondre
1
Le code suivant transforme les valeurs et les titres PSMultiValueSpecifier en un bon dictionnaire que vous pouvez utiliser avec votre UIPickViewer.
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;
Pour enregistrer ce que vous devez enregistrer la clé et non la valeur du dictionnaire.
[settings setObject:dictionaryKey forKey:@"mySelection_preference"];