不兼容的整数到指针转换?什么?

Spa*_*Dog 0 iphone ipad ios

我正在读一个用UTF8编码的txt文件.

我现在正在阅读该文件.我有这样的话:

- (NSString *) readFromFile {

    NSArray *paths = NSSearchPathForDirectoriesInDomains
    (NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];


    NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt",
                          documentsDirectory];
    return [[NSString alloc] initWithContentsOfFile:fileName
                        usedEncoding:NSUTF8StringEncoding
                        error:nil];
}
Run Code Online (Sandbox Code Playgroud)

我在最后一行有这个错误:

不兼容的整数到指针转换发送int到NSUTF8StringEncoding类型的参数*

为什么?

Mon*_*olo 5

这里的关键是"使用d编码" 中的" d ".

该参数用于将信息传递给调用者关于用于读取文件的编码.

这意味着它是一个NSString类,它通知调用者它用于从文件中的原始数据创建对象的编码 - 而不是可以指示类使用哪种编码的调用者.

要获取此信息,您需要声明一个变量并传递对它的引用,以便NSString类对象可以将信息放入其中,以便稍后在需要时阅读.

NSStringEncoding enc;

NSString *result = [[NSString alloc] initWithContentsOfFile:fileName
                    usedEncoding: &enc
                    error:nil];

// Do something with the information about the encoding used
if ( enc == NSUTF8StringEncoding ) {
     // ...
}

return result;
Run Code Online (Sandbox Code Playgroud)