2012-03-24 6 views
-2

Dies ist der Code, den ich habe. Das NSDictionary war früher etwas, aber ich habe es vorübergehend entfernt, als ich versuchte, das Problem zu finden.writeToPath: atomar: - nicht sicher, warum dies fehlschlägt

NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Entries/"]; 

    NSFileManager *fileManager = [NSFileManager defaultManager]; 
    BOOL isDirectory = NO; 
    BOOL directoryExists = [fileManager fileExistsAtPath:path isDirectory:&isDirectory]; 
    if (!directoryExists) { 
     [fileManager createDirectoryAtPath:path withIntermediateDirectories:NO attributes:nil error:nil]; 
    } 

    if ([self.pathName isEqualToString:@""] || self.pathName == nil) { 
    self.pathName = [NSString stringWithFormat:@"%@.JEntry", [JMedia generateUuidString]]; 
    } 

    NSString *entryPath = [path stringByAppendingPathComponent:self.pathName]; 

    NSDictionary *dictionary; 

    NSLog(@"entrypath: %@", entryPath); 

    BOOL success = [dictionary writeToFile:entryPath atomically:YES]; 

    NSLog(@"success: %i", success); 

NSLog:

entrypath: /var/mobile/Applications/1B838285-8326-427A-8AC5-0D5567C3CD81/Documents/Entries/70AFCF6D-540E-436E-9989-68793500E35B.JEntry 
success: 0 
+0

Haben Sie das Dokumentenverzeichnis des Sims überprüft, um festzustellen, ob die Datei existiert? – CodaFi

+0

Die Methode '[JMedia generate UuidString]' bringt eine völlig zufällige Zeichenfolge zurück, so dass sie nicht schon existieren kann. – Andrew

+1

Im Moment ist "Wörterbuch" gleich Null, also wird das niemals funktionieren. – jrturton

Antwort

2

Das Problem könnte sein, dass dictionary Elemente enthält, die nicht Eigenschaftsliste Objekte sind wie die documentaion sagt:

Diese Methode validiert rekursiv, dass alle enthaltenen Objekte sind Eigenschaftslistenobjekte (Instanzen von NSData, NSDate, NSNumber, NSString, NSArray oder NSDictionary), bevor die Datei geschrieben wird, und gibt NO zurück, wenn a Bei den Objekten handelt es sich nicht um Eigenschaftslistenobjekte, da die resultierende Datei keine gültige Eigenschaftsliste wäre.

+0

Ich dachte daran, weshalb ich das NSDictionary nicht irgendwelche Objekte enthält. Also ich weiß, das ist nicht das Problem. – Andrew

+2

Nein. In Ihrem aktuellen Code ist das 'NSDictionary' kein Wörterbuch, das kein Objekt enthält, es ist 'nil'. Deshalb bekommst du jetzt "Erfolg: 0". – sch

Verwandte Themen