Cocoa:从文件中获取字符串的基本问题

时间:2010-02-23 14:07:28

标签: objective-c cocoa string file

为什么会产生一个nil字符串而不是文件的实际文本内容,有一些令人眼花缭乱的明显原因吗?

NSString *fromFile = [NSString stringWithContentsOfFile:
                       @"file://localhost/Users/username/Desktop/test.txt"];

NSLog(@"%@", fromFile);

PRINTS: "(null)"

该文件是从TextWrangler保存的纯ASCII文本文件,内容为'abc'。

路径来自将实际文件从桌面拖到Xcode编辑器窗口。

我也试过没有“file:// localhost”。

方法文档说“如果无法打开文件,则返回nil”。文件没有什么异常(没有锁定等)。它具有默认的Unix权限,由与运行Xcode的用户相同的用户创建。

我知道这种方法已被弃用 - 试图让这个方法先行。

2 个答案:

答案 0 :(得分:4)

您已将stringWithContentsOfFile:stringWithContentsOfURL:混为一谈。

如果您传递的是某个网址,例如 @"file://localhost/Users/username/Desktop/test.txt" 您想要stringWithContentsOfURL:并将参数设为NSURL,例如 [NSURL URLWithString:@"file://localhost/Users/username/Desktop/test.txt"]

如果您想使用stringWithContentsOfFile:,则参数应为 @"/Users/username/Desktop/test.txt"

答案 1 :(得分:0)

您是否尝试过~/Desktop/test.txt/Users/username/Desktop/test.txt