Wie speichere ich einen NSString als .txt-Datei im lokalen Dokumentenverzeichnis meiner Anwendung (UTF-8)?
Antworten
Zu viele Anzeigen?NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents directory
NSError *error;
BOOL succeed = [myString writeToFile:[documentsDirectory stringByAppendingPathComponent:@"myfile.txt"]
atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (!succeed){
// Handle error here
}
Craig
Punkte
9245
Etwa so:
NSString *homeDirectory;
homeDirectory = NSHomeDirectory(); // Get app's home directory - you could check for a folder here too.
BOOL isWriteable = [[NSFileManager defaultManager] isWritableFileAtPath: homeDirectory]; //Check file path is writealbe
// You can now add a file name to your path and the create the initial empty file
[[NSFileManager defaultManager] createFileAtPath:newFilePath contents:nil attributes:nil];
// Then as a you have an NSString you could simple use the writeFile: method
NSString *yourStringOfData;
[yourStringOfData writeToFile: newFilePath atomically: YES];
hafhadg3
Punkte
636
Können Sie NSUserDefaults verwenden
Sparen:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];
Lesen:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *myString = [prefs stringForKey:@"keyToLookupString"];
Rafa de King
Punkte
38434
Er ist, wie man NSString in Documents Ordner speichern. Das Speichern von anderen Datentypen kann auch auf diese Weise realisiert werden.
- (void)saveStringToDocuments:(NSString *)stringToSave {
NSString *documentsFolder = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
NSString *fileName = [NSString stringWithString:@"savedString.txt"];
NSString *path = [documentsFolder stringByAppendingPathComponent:fileName];
[[NSFileManager defaultManager] createFileAtPath:path contents:[stringToSave dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];
}
brynbodayle
Punkte
6466
Ich habe diese Methode verwendet, um einige base64-kodierte Bilddaten auf der Festplatte zu speichern. Beim Öffnen der Textdatei auf meinem Computer hatte ich immer wieder Probleme, die Daten zu lesen, da einige Zeilenumbrüche und Rückgaben automatisch hinzugefügt wurden.
Der folgende Code behebt dieses Problem:
myString = [myString stringByReplacingOccurrencesOfString:@"\n" withString:@""];
myString = [myString stringByReplacingOccurrencesOfString:@"\r" withString:@""];
// write string to disk