Wie speichere ich in eine plist? Xcode

N

Nicvic

Neues Mitglied
Thread Starter
Dabei seit
01.08.2011
Beiträge
9
Reaktionspunkte
0
Hallo,
ich will Benutzer in eine plist speichern.
Diese plist heißt "Users.plist".

Wenn ich meinen Code ausführe kommt die Fehlermeldung "SIGABRT"!!

Hier ist mein Code:
Code:
- (IBAction)adduserbuttonPressed:(id)sender{
    //In Plist speichern
    users = [[NSMutableArray arrayWithCapacity:7] retain];
	
	NSArray *keys = [NSArray arrayWithObjects:@"Benutzername", @"Passwort", nil]; // Set the key values for each field
	
	[users addObject:[NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:username.text, password.text, [NSNumber numberWithInt:1], [NSNumber numberWithInt:0], nil] forKeys:keys]]; 
    NSString *path = [[NSBundle mainBundle] bundlePath];
    NSString *filePath = [path stringByAppendingPathComponent:@"Users.plist"];
    [users writeToFile:filePath atomically: YES];
    
    //Nachricht, dass alles erflogreich war
    UIAlertView *erflogreich = [[UIAlertView alloc]
                            initWithTitle:@"Benutzer erfolgreich erstellt!" message:@"Der Benutzer wurde erflogreich erstellt. Sie können ihn ab jetzt benutzen!"
                            delegate:self 
                            cancelButtonTitle:nil
                            otherButtonTitles:@"Ok!", nil];
    [erflogreich show];   
}

So nun zu meinen Fragen:
1.) Wie mache ich, dass man mehr als 7 Benutzer speichern kann (users = [[NSMutableArray arrayWithCapacity:7] retain];)
2.) Was ist an meinem Code falsch?


Viele Grüße
Nicvic
 
1) Lies mal einfach die Dokumentation: Mutable arrays expand as needed; numItems simply establishes the object’s initial capacity.
Bevor Du das nächste mal eine Frage stellst, lies das hier:
http://www.tty1.net/smart-questions_de.html

2) Wo Dein Abbruch passiert sehe ich hier jetzt so nicht raus, aber Du versuchst 4 Objekte mit 2 Keys zu speichern. Das klingt nach keiner guten Idee. Ausserdem ist Dein Memory-Management hinten und vorne falsch, sieht aber eher nach Leaks als nach Overrelease aus.

Alex
 
Im übrigen darfst Du natürlich nix in [[NSBundle mainBundle] bundlePath] speichern.

Pflichtlektüre: About the iOS File System

Alex
 
Arbeite doch einfach mit NSUserDefaults.
 
Zurück
Oben Unten