iOS Plist

  • Hallo liege Community,

    ich habe vor kurzer Angefangen mich mit Xcode zu beschäftigen, um für das IOS Apps zu entwickeln. Ich bin jetzt aber leider auf ein Problem gestossen:

    Man kann ja allgemeine Einstellungen für das App in den Bundle Dateien speichern. Diese werden dann ja auch in dem Einstellungsmenu im IPhone dargestellt. Die eigentlichen Einstellungen werden dann in .plist Dateien gespeichert. Ich versuche jetzt in einer Methode diese Einstellungen auszulesen, was mir allerdings nicht wirklich gelingt. Meine Plist besteht momentan aus einem Edit Feld und zwei Multiauswahlen. Ich habe es mit folgendem Quellcode versucht:

    Quellcode

    1. NSString *settingsBundle = [[NSBundle mainBundle] pathForResource:@"Setting" ofType:@"bundle"];
    2. NSAssert(settingsBundle, @"Could not find Settings.bundle while loading defaults.");
    3. NSString *plistFullName = [NSString stringWithFormat:@"%@.plist", @"Root"];
    4. NSDictionary *settings = [NSDictionary dictionaryWithContentsOfFile:[settingsBundle stringByAppendingPathComponent:plistFullName]];
    5. NSAssert1(settings, @"Could not load plist '%@' while loading defaults.", plistFullName);
    6. NSArray *preferences = [settings objectForKey:@"PreferenceSpecifiers"];
    7. NSAssert1(preferences, @"Could not find preferences entry in plist '%@' while loading defaults.", plistFullName);
    8. NSMutableDictionary *defaults = [NSMutableDictionary dictionary];
    9. for(NSDictionary *prefSpecification in preferences) {
    10. NSString *key = [prefSpecification objectForKey:@"Key"];
    11. id value = [prefSpecification objectForKey:@"DefaultValue"];
    12. if(key && value) {
    13. [defaults setObject:value forKey:key];
    14. }
    15. }
    Alles anzeigen


    In der Variable preferences sind zwar alle Einträge aufgelistet, aber ich sehe weder, welcher von den Multiauswahlen aktiv ist, noch was in dem EDIT Feld enthalten ist.

    Im Vorfeld schonmal vielen Dank für die Antworten.
  • einfach nur NSUserDefaults *standartDef = [NSUserDefaults standartUserDefaults];
    [standartDef syncronize]; //Damit die Einstellungen aus dem Bundle richtig geladen werden
    und dann ... = [standartUserDef objectForKey/boolForKey xxxForKey];
    Gruß

    Robin