从NSString创建NSURL的正确方法是什么?

Tom*_*ulc 1 macos cocoa nsurl nsstring

我有一个NSString存储保存文件的路径:

NSString *filePath = [NSString stringWithFormat:
                      @"%@/someFolder/%@",
                      NSHomeDirectory(),
                      [NSString stringWithFormat:@"%@",[self.fileName stringByAppendingPathExtension:@"txt"]]];
Run Code Online (Sandbox Code Playgroud)

它没关系 - 当我记录它时,我得到:

/Users/username/someFolder/fileName.txt
Run Code Online (Sandbox Code Playgroud)

所以我的下一步是从中创建一个NSURL对象NSString.我这样做了:

        NSURL *pathURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@", filePath]];
        NSLog(@"URL = %@", pathURL);
Run Code Online (Sandbox Code Playgroud)

但回应是:

URL = (null)
Run Code Online (Sandbox Code Playgroud)

这有什么不对?我该怎么做才能正确?

小智 11

路径本身不是有效的URL.你必须使用这个:

NSURL *pathURL = [NSURL fileURLWithPath:filePath];
Run Code Online (Sandbox Code Playgroud)

并阅读文档.(并且不要过度使用/滥用格式字符串.)