目标C文件读取期间的例外情况?

时间:2012-04-09 03:20:39

标签: objective-c xcode cocoa exception osx-lion

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

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 URL]部分吗? 谢谢。

2 个答案:

答案 0 :(得分:4)

看起来filePathNSURL,但stringWithContentsOfFile:encoding:error:期望路径为NSString

试试这个:

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

答案 1 :(得分:1)

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

您可以在fileContents字符串上使用此方法,也可以将fileContents字符串传递给NSURL的{​​{1}}方法。