为什么会产生一个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的用户相同的用户创建。
我知道这种方法已被弃用 - 试图让这个方法先行。
答案 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
?