1

我正在尝试逐行读取文本文件,文本文件将是一个非常小的文件,所以我只使用了:

NSString *fileContents = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];

但是,该行引发了一个异常,说:

[NSURL getFileSystemRepresentation:maxLength:]: unrecognized selector sent to instance 0x7f92c40e1890

我对Objective-C真的很陌生,我不明白为什么会这样......

提前致谢。


NSString *filePath;
NSOpenPanel *fileBrowser = [NSOpenPanel openPanel];
[fileBrowser setCanChooseFiles:YES];
[fileBrowser setCanChooseDirectories:YES];
if ([fileBrowser runModal] == NSOKButton) {
    NSArray *files = [fileBrowser URLs];
    for ( int i = 0; i < [files count]; i++ ) {
        filePath = [files objectAtIndex:i];
    }
}

这是因为 [fileBrowser URLs] 部分吗?谢谢你。

4

2 回答 2

4

它看起来像是filePath一个NSURL,但stringWithContentsOfFile:encoding:error:期望路径是一个NSString

试试这个:

NSString *fileContents = [NSString stringWithContentsOfURL:filePath encoding:NSUTF8StringEncoding error:nil];
于 2012-04-09T03:26:27.503 回答
1

您收到此错误是因为NSURL没有方法getFileSystemRespresentation,这是在NSString.

您可以在fileContents字符串上使用此方法,也可以将字符串传递fileContentsNSURL'URLWithString方法。

于 2012-04-09T03:26:35.597 回答