[英]writeToFile is working on simulator and not working on device using ios swift
[英]iOS 8 writeToFile in Simulator
我正在嘗試使用以下代碼將簡單的字符串寫入文件:
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt",
documentsDirectory];
NSString *content = @"Test Content";
NSError *error = nil;
[content writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:&error];
NSLog(@"Error %@ %@", fileName, error);
但是未寫入文件,錯誤為null。
我正在iOS模擬器中運行代碼,並希望將文件寫入以下位置:/ Users / user / Library / Developer / CoreSimulator / Devices / 85DDC17D-A771-40D9-99BE-71FF6B60D2DF / data / Containers / Data /Application/BD30A945-25DB-4ECE-B7F7-E9C20C6691C7/Documents/textfile.txt(來自NSLog的fileName路徑)。
正如@rckoenes指出的那樣,這是我其余代碼中的錯誤。 我有一個刪除“文檔”中所有文件的功能,只是我不記得我有這個功能,而且由於代碼的長度(> 5000行),很難找到它。 謝謝你們!
使用URL是一種可靠的方式,因此我將稍微修改一下您的想法,例如:
NSURL *_documentFolder = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
NSURL *_fileURL = [_documentFolder URLByAppendingPathComponent:@"textFile.txt"];
NSError *_error = nil;
BOOL _success = [@"hello!" writeToURL:_fileURL atomically:TRUE encoding:NSUTF8StringEncoding error:&_error];
可以在模擬器和真實設備上完美運行,並且文件textFile.txt
將具有內容hello!
。
注意:如果_success
值為FALSE
,即使您只是將其記錄到調試控制台,也可以通過_error
獲得有關原因的更多信息。 我沒有在示例中隔離NSString
,但是您可以將其替換為自己的實例。
請檢查以下代碼:
NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filePath = [[pathsobjectAtIndex:0]stringByAppendingPathComponent:@"textfile.txt"];
NSString *temp = [[NSString alloc] initWithString:@"Test Content"];
[temp writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.