Fehler beim Überprüfen, ob eine Datei vorhanden ist

Ich versuche mit writeToFile in eine plist-Datei zu schreiben, bevor ich schreibe, überprüfe ich, ob die Datei existiert.

Dies ist der Code:

#import "WindowController.h"

@implementation WindowController

@synthesize contacts;

NSString *filePath;
NSFileManager *fileManager;

- (IBAction)addContactAction:(id)sender {

    NSDictionary *dict =[NSDictionary dictionaryWithObjectsAndKeys:
                         [txtFirstName stringValue], @"firstName",
                         [txtLastName stringValue], @"lastName",
                         [txtPhoneNumber stringValue], @"phoneNumber",
                         nil];

    [arrayContacts addObject:dict];

    [self updateFile];
}

- (void)awakeFromNib {
    NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    filePath    = [rootPath stringByAppendingPathComponent:@"Contacts.plist"];
    fileManager = [NSFileManager defaultManager];

    contacts = [[NSMutableArray alloc] init];

    if ([fileManager fileExistsAtPath:filePath]) {

        NSMutableArray *contactsFile = [[NSMutableArray alloc] initWithContentsOfFile:filePath];
        for (id contact in contactsFile) {
            [arrayContacts addObject:contact];
        }
    }
}

- (void) updateFile {
    if ( ![fileManager fileExistsAtPath:filePath] || [fileManager isWritableFileAtPath:filePath]) {
        [[arrayContacts arrangedObjects] writeToFile:filePath atomically:YES];
    }
}

@end

Wenn die AddContactAction ausgeführt wird, erhalte ich keine Fehlermeldung, aber das Programm wird angehalten und ich komme zum Debugger. Wenn ich im Debugger auf Continue drücke, erhalte ich:

Program received signal:  “EXC_BAD_ACCESS”.

Aber das ist wahrscheinlich nicht wichtig.

PS: Ich bin neu in der Mac-Programmierung und weiß nicht, was ich sonst noch versuchen soll, da ich keine Fehlermeldung bekomme, die mir sagt, was falsch läuft.

Der Pfad zur Datei lautet:

/Users/andre/Documents/Contacts.plist

Ich habe es früher versucht (mit dem gleichen Ergebnis), aber ich habe gelesen, dass Sie nur in den Dokumentenordner schreiben können:

/Users/andre/Desktop/NN/NSTableView/build/Debug/NSTableView.app/Contents/Resources/Contacts.plist

Hat jemand eine Idee oder gar eine Erklärung, warum dies passiert?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage