2012-01-04 77 views
8

我尝试从NSURL得到NSString用这种方法:获取的NSString从NSURL

NSString *tmp2 = [item.path absoluteString]; 

不幸的是我得到的,而不是NSURL:

<CFURL 0x173c50 [0x3f1359f8]>{type = 0, string = /var/mobile/Applications/A30FD2E4-A273-4522-AFD5-A981EFD3C2AA/Documents/*** *** - *** ***.***, encoding = 134217984, base = (null)} 

我得到:

file://localhost/var/mobile/Applications/A30FD2E4-A273-4522-AFD5-A981EFD3C2AA/Documents/***%20***%20-%20***%20***.*** 

任何想法为什么?

+0

如果你正在寻找你会做会得到什么'PO item'(其中项目是一个NSURL)在gdb,那么你应该叫'[项目简介]'。不知道为什么你想要的NSURL。正你只是希望建立一个持久层 – Sam 2012-01-04 16:23:53

+6

你是说你想获得一个串出一个URL的,这是你得到什么? - ?你有什么问题 – Till 2012-01-04 16:40:03

+1

的问题是,我得到“%20”,而不是的“ “ – MTA 2012-01-08 08:42:04

回答

20

NSURL documentation明确指出absoluteString返回一个NSString,就像上面的代码一样。这是绝对路径的字符串表示,所以你得到的是你应该得到的。

然而,看着文档,你也可以使用pathrelativePathrelativeString获得其他格式的URL的字符串表示(绝对或相对路径,要么做或不符合RFC 1808(一个现在已经过时percent encoding) 。