2012-01-04 9 views
8

Intento conseguir NSString de NSURL con este método:consigo NSString De NSURL

NSString *tmp2 = [item.path absoluteString]; 

Desafortunadamente me sale en lugar de la NSURL:

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

me sale:

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

alguna idea por que?

+0

Si está buscando lo que obtendría al hacer 'po item' (donde el artículo es un NSURL) en gdb, entonces debe llamar a' [item description] '. No estoy seguro de por qué quiere el NSUrl. ¿Estás buscando construir una capa de persistencia? – Sam

+6

Estás diciendo que quieres obtener una cadena de una URL y eso es exactamente lo que obtienes: ¿cuál es tu problema? – Till

+1

El problema es que me sale "% 20" en su lugar de " " – MTA

Respuesta

20

El NSURL documentation indica claramente que absoluteString devuelve un NSString, al igual que el código anterior. Esta es la representación de cadena de la ruta absoluta, por lo que lo que está obteniendo es lo que debería obtener.

Sin embargo, mirando a la documentación también se puede utilizar path, relativePath o relativeString para obtener una representación de cadena de la URL en otros formatos (rutas absolutas o relativas que, o bien hacer o no se ajusten a RFC 1808 (una ya obsoleta percent encoding)