使用writeToFile无法完成该操作

时间:2014-08-28 16:21:52

标签: objective-c nsfilemanager

我有这个代码在iphone的目录中创建一个文本文件:

NSArray *paths = NSSearchPathForDirectoriesInDomains
    (NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSString *fileName = [NSString stringWithFormat:@"%@/file.txt",
                          documentsDirectory];

    NSString *content = @"my first text";

    NSError *error;

    if ([[NSFileManager defaultManager] fileExistsAtPath:fileName] == NO) {

    [content writeToFile:fileName
              atomically:YES
                encoding:NSStringEncodingConversionAllowLossy
                   error:&error];

    }else{

        [content writeToFile:fileName
                  atomically:YES
                    encoding:NSStringEncodingConversionAllowLossy
                       error:&error];

    }

代码工作正常,直到某个时间它不再起作用,并返回以下错误:

  

错误域= NSCocoaErrorDomain代码= 517“操作无法执行   完成。 (可可错误517.)“UserInfo = 0x8c852b0   {NSFilePath = / Users / williamlima / Library / Application Support / iPhone   模拟器/ 7.1 /应用/ B5781B9E-3915-4656-83D4-5E0FB6486567 /文档/ file.txt的,   NSStringEncoding = 1}

我如何解决这个问题?

2 个答案:

答案 0 :(得分:5)

您可以尝试使用UTF8Encoding

[content writeToFile:fileName
              atomically:YES
                encoding: NSUTF8StringEncoding
                   error:&error];

答案 1 :(得分:0)

我的两分钱

Ozgur修复程序在Xcode 10中使用objC在Mojave 10.4中工作,解决了错误。