Objective c NSURL fileUrlWithPath方法返回双路径

Objective c NSURL fileUrlWithPath方法返回双路径,objective-c,macos,cocoa,osx-yosemite,nsurl,Objective C,Macos,Cocoa,Osx Yosemite,Nsurl,这是一个场景: 在用于OS X 10.10.5的沙盒应用程序中,我在NSString对象中保存了一些路径,例如@file:///Users/xxx/” 然后执行[NSURL fileURLWithPath:object]。这给了我像这样的NSURL对象 @“文件:/Users/xxx-- file:///Users/xxx/Library/Containers/com.123456.App/Data/" 我只需要这部分file:///Users/xxx/Library/Containers/c

这是一个场景: 在用于OS X 10.10.5的沙盒应用程序中,我在NSString对象中保存了一些路径,例如@file:///Users/xxx/

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

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

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

在某种程度上,源字符串被扭曲和加倍,中间加了额外的破折号。 有人能解释为什么会这样吗


Xcode 6.4

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

NSURL *url=[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"fileName" ofType:@"fileExtension"]];
fileURLWithPath:将返回文件URL路径

i、 e以:文件开始://

这意味着您传递给它的字符串路径应为以下形式:

@"/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);

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

我猜这与您如何构造字符串路径有关。您能告诉我们您在那里做什么吗..或者,如果您以URL字符串开头,这就是
@file:///Users/xxx/“
是,使用
+URLWithString:
”。