来自NSString的NSUrl返回null

时间:2014-05-02 09:29:32

标签: ios objective-c parsing nsstring nsurl

我想从我NSUrl解析我的文档目录的位置NSString

当我的控制台NSLog(stringURL)

i get: "/var/mobile/Applications/2B35D06D-6E4A-40F2-833E-28463A946834/Library/Application Support/MyAppDirectory" as an output.

但是当我做的时候

NSURL* url = [NSURL URLWithString:stringUrl];

和NSLog(url)我得到(null)作为输出。

我在这里做错了什么?

3 个答案:

答案 0 :(得分:3)

来自apple文档"使用URLString初始化的NSURL对象。如果URL字符串格式错误或为nil,则返回nil。"您的stringURL不是正确形成的网址。供参考:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSURL_Class/Reference/Reference.html#//apple_ref/occ/clm/NSURL/URLWithString

您实际想要使用的是:fileURLWithPath: isDirectory:而不是。

NSURL *url = [NSURL fileURLWithString:[stringURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] isDirectory:YES];
NSLog(@"%@", url);

答案 1 :(得分:2)

怎么样:

NSURL* url = [NSURL fileURLWithString:stringUrl];
//                  ^^^^

答案 2 :(得分:1)

使用fileURLWithPath(因为您传递文件路径):

NSURL* url = [NSURL fileURLWithPath:stringUrl];