2012-01-04 2 views
8

Я пытаюсь получить NSString из NSURL с помощью этого метода:Получить 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' (где item - NSURL) в gdb, тогда вы должны называть' [описание элемента] '. Не знаете, почему вы хотите NSUrl. вы просто пытаетесь создать слой персистентности? – Sam

+6

Вы говорите, что хотите получить строку из URL-адреса, и это именно то, что вы получаете - в чем проблема? – Till

+1

Проблема в том, что я получаю вместо этого «% 20» из " " – MTA

ответ

20

NSURL documentation четко заявляет, что absoluteString возвращает NSString, точно так же как и ваш код выше. Это строковое представление абсолютного пути, поэтому то, что вы получаете, - это то, что вы должны получать.

Однако, глядя на документацию можно также использовать path, relativePath или relativeString, чтобы получить строковое представление URL в других форматах (абсолютные или относительные пути, которые либо делать или не соответствуют RFC 1808 (а в настоящее время устарели percent encoding) .

Смежные вопросы