gpt4 book ai didi

ios - writeToFile 在 iOS 7 上工作而不在 iOS 6 上工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:36:11 24 4
gpt4 key购买 nike

我遇到了一个问题,但找不到任何相关信息。

我得到了一些代码,可以使用 iOS 在 Documents 文件夹中写入文件。检查了 Apple 文档,我想把它放在下一次发布时可用的地方。

这是我使用的代码:

- (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 时它就不再运行了。

事实上,我发现“Application Support/iPhone Simulator/6.0/”中没有Documents文件夹,但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];

更新

如果文档目录不存在则创建

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 - writeToFile 在 iOS 7 上工作而不在 iOS 6 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22034780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com