2014-12-04 39 views
0

我試圖寫一個簡單的字符串的文件,使用下面的代碼:的iOS 8將writeToFile在模擬器

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); 

但文件is'nt書面和錯誤是零。

我正在運行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的路徑)。

+1

「'writeToFile:atomically:encoding:'」返回BOOL值以指示寫入成功或失敗。在你的情況下,它是否返回真或假? – 2014-12-04 12:47:16

+0

它返回true。但該文件尚未寫入。我現在創建了一個測試項目,並執行相同的代碼,並將文件寫入。那麼這個項目可能會有些麻煩嗎? – 2014-12-04 12:56:38

+0

我已將上述代碼複製到新應用程序中,並且它可以正常工作。你確定你正在使用上面的EXACTE代碼嗎?另外創建fileName var如下:'NSString * fileName = [documentsDirectory stringByAppendingPathComponent:@「textfile.txt」];' – rckoenes 2014-12-04 13:15:53

回答

-2

請檢查下面的代碼:

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]; 
+3

不要只是發佈代碼,解釋什麼是不同的,爲什麼! – rckoenes 2014-12-04 12:54:47

+0

檢查出來,downvote – Andy 2014-12-04 20:20:16

-1

使用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!


注:如果_successFALSE,你可以得到關於通過該_error原因的更多信息,即使你只是將其記錄到調試控制檯。在我的例子中,我沒有隔離NSString,但可以用自己的實例替換它。

+0

可愛......一個天才downvoted沒有留下任何評論...該死的系統可以通過強迫這些白癡留下一些評論最終重做?這對社區沒有幫助 - 因爲我個人不知道如何改進答案。如果有人,請給我一個提示。謝謝! – holex 2015-02-23 15:46:21

0

正如@rckoenes指出,這是我的代碼的其餘部分的錯誤。我有一個函數刪除「文件」中的所有文件,我只是不記得我有這個函數,並且由於代碼的長度(> 5000行)很難找到。謝謝你們!