writeToFile在iOS 7上不在iOS 6上
我一直有一个问题,我找不到任何关于它的东西。writeToFile在iOS 7上不在iOS 6上
我有一些代码可以在iOS文档文件夹中编写文件。检查苹果文件似乎是我想把它的文件放在下一次启动。
下面是我使用的代码:现在,我使用这个方法的单元测试
- (void) writeToTextFile:(NSString *)logMessage inFile:(NSString *)fileName
{
//get the documents directory:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
//make a file name to write the data to using the documents directory:
NSString *filePath = [NSString stringWithFormat:@"%@/%@.txt", documentsDirectory, fileName];
NSLog(@"TEST path: %@", filePath);
//save logMessage to the documents directory
[logMessage writeToFile:filePath atomically:YES encoding:NSStringEncodingConversionAllowLossy error:nil];
}
。它在iOS 7.0.3模拟器上工作正常,但是当我切换到iOS 6.0时,它不再工作。
其实我发现,有中没有文件夹“应用程序支持/ iPhone模拟器/ 6.0 /”,但有一个在7.0.3的文件夹。
我实在无法找到如何写入一个文件应在6和7。我应该测试,如果该文件夹存在则创建它,如果它不存在之间处理什么不同吗?
这对我的作品
NSString *string = @"Text to save";
NSString *filePath = @"filerecord.txt";
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths objectAtIndex:0];
NSString *filePath = [docDir stringByAppendingPathComponent:filePath];
[string writeToFile:filePath atomically:YES];
UPDATE
创建文档目录,如果不存在
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
if (![fileManager fileExistsAtPath:documentsDirectory]) {
[fileManager createDirectoryAtPath:documentsDirectory withIntermediateDirectories:NO attributes:nil error:&error];
}
NSString *string = @"Text to save";
NSString *filePath = @"filerecord.txt";
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:filePath];
[string writeToFile:filePath atomically:YES];
这给了我相同的“没有这样的文件或目录错误”在iOS 6 – SeikoTheWiz
尝试检查您的错误 'NSError * error = nil; BOOL成功= [字符串writeToFile:filePath选项:NSDataWritingAtomic错误:错误]; 的NSLog(@ “是成功=%d,误差=%@”,成功,错误);' –
2014年2月26日09:27:50.773 xctest [93261:303]是成功= 0,误差=错误域= NSCocoaErrorDomain Code = 4“操作无法完成(Cocoa error 4)”UserInfo = 0x8a20080 {NSUnderlyingError = 0x8a22110“操作无法完成,没有这样的文件或目录”,NSFilePath =/Users/SeikoTheWiz /库/应用程序支持/ iPhone模拟器/ 6.0 /文档/ filerecord.txt,NSUserStringVariant =文件夹} – SeikoTheWiz
你'filePath'无效。要创建文件路径,请使用'stringByAppendingPathComponent'方法。比如'NSString * filePath = [documentsDirectory stringByAppendingPathComponent:fileName];' –
在问这里之前,您应该添加一个错误变量并在iOS 6中读取它,然后告诉我们它说了什么。假设它不只是直接告诉你发生了什么问题。 –
它告诉我目录未找到 – SeikoTheWiz