Domanda

Ho bisogno di caricare un file .xml da un indirizzo URL in un oggetto NSData per ulteriori analisi con alcune librerie che già possiedo, (ma me il file XML come NSData hanno chiesto), come potrei fare questo?

Il formato URL sarebbe qualcosa di simile a questo:

http://127.0.0.1/config.xml

È stato utile?

Soluzione

Supponendo che sia UTF-8 dei dati. Se si tratta di locali (vale a dire all'interno del bundle) qualcosa come:

NSError *error;
NSString* contents = [NSString stringWithContentsOfFile:PATHTOLOCALFILE 
                               encoding:NSUTF8StringEncoding
                               error:&error];
NSData* xmlData = [contents dataUsingEncoding:NSUTF8StringEncoding];

Se è su un sito remoto, qualcosa di simile dovrebbe farlo. Si noti che è sincrona. Se avete bisogno di caricamento asincrono, quindi dovrete fare il vostro proprio networking o usare qualcosa come ASIHTTPConnection per scaricare il file prima.

NSError *error;
NSString* contents = [NSString stringWithContentsOfUrl:[NSURL URLWithString:URLOFXMLFILE] 
                               encoding:NSUTF8StringEncoding
                               error:&error];
NSData* xmlData = [contents dataUsingEncoding:NSUTF8StringEncoding];

Altri suggerimenti

È possibile chiamare routine di NSData di - (id)initWithContentsOfURL:(NSURL *)aURL. Maggiori informazioni qui:

http://developer.apple .com / documentazione / cacao / Reference / Fondazione / Corsi / NSData_Class / Reference / Reference.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top