【问题标题】:Objective C Exception during file reading?文件读取期间的目标C异常?
【发布时间】:2012-04-09 03:20:39
【问题描述】:

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

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

【问题讨论】:

  • 我猜你在不应该的时候创建了 filePath 作为 NSURL。请发布创建它的代码。

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


【解决方案1】:

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

试试这个:

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

【讨论】:

  • 是的,这行得通。但我只是决定将 url 转换为文件路径的 NSString。谢谢!!
【解决方案2】:

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

您可以在您的fileContents 字符串上使用此方法,或者将您的fileContents 字符串传递给NSURLURLWithString 方法。

【讨论】:

  • 是的..现在我明白了。谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-06-29
  • 1970-01-01
  • 2013-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-01
  • 1970-01-01
相关资源
最近更新 更多