• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-12 19:30:55 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

我有一些代码可以在 iOS 的 Documents 文件夹中写入文件。检查了 Apple 文档,似乎我想将文件放在此处,以便下次发布时可用。

这是我正在使用的代码:

- (void) writeToTextFileNSString *)logMessage inFileNSString *)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 之间应该如何处理写入文件的任何差异。我是否应该测试该文件夹是否存在,如果不存在则创建它?



Best Answer-推荐答案


这对我有用

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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap