NSURL fileUrlWithPath 方法 returns 双路径

NSURL fileUrlWithPath method returns double path

情况是这样的: 在 OS X 10.10.5 的沙盒应用程序中,我在 NSString 对象中保存了一些路径,例如 @"file:///Users/xxx/".

然后我执行[NSURL fileURLWithPath:object]。这给了我这样的 NSURL 对象

@"file:/Users/xxx -- file:///Users/xxx/Library/Containers/com.123456.App/Data/"

.

我只需要这部分@"file:///Users/xxx/Library/Containers/com.123456.App/Data/"

源字符串以某种方式被扭曲和加倍,并在中间添加了额外的破折号。 谁能解释为什么会这样?

Xcode6.4

你能试试这样的吗?通过提供文件名和扩展名。

NSURL *url=[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"fileName" ofType:@"fileExtension"]];

fileURLWithPath: 将 return 文件 URL 路径。

即开始于:file:///

这意味着你传递给它的字符串路径应该是这样的形式:

@"/Users/xxx/Library/Containers/com.123456.App/Data/"

您不需要在路径前添加 file:///。或者你会得到你正在得到的结果。


示例:

NSString * stringPath = @"/Users/xxx/Library/Containers/com.123456.App/Data/";

    NSURL * anUrl =[NSURL fileURLWithPath:stringPath ];


     NSLog(@"nUrl %@",anUrl);

----> nUrl file:///Users/xxx/Library/Containers/com.123456.App/Data/