簡體   English   中英

iOS 8 Simulator中的writeToFile

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM