2012-01-04 122 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) 。