Objective c NSURL fileUrlWithPath方法返回双路径
这是一个场景: 在用于OS X 10.10.5的沙盒应用程序中,我在NSString对象中保存了一些路径,例如@file:///Users/xxx/” 然后执行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
[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:
”。