2012-03-21 17 views
14

ogni volta che voglio ottenere dati da un file plist io uso il seguente codice:Ottenere i dati dal plist Info

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"FILE_NAME" ofType:@"plist"]; 
NSDictionary *plistData = [NSDictionary dictionaryWithContentsOfFile:filePath]; 

Ma ora sto cercando di leggere i dati dal Informazioni plist, e filePath è nil. C'è un modo diverso per ottenere i dati da Info plist?

+0

Grazie, questo ha risolto il mio problema. – Darren

+0

Possibile duplicato di [iOS: accesso alle variabili app-info.plist nel codice] (http://stackoverflow.com/questions/9530075/ios-access-app-info-plist-variables-in-code) – thegrinner

risposta

40

Da una precedente risposta SO. Attributi dal info.plist per il progetto sono direttamente accessibili dal seguente ...

[[NSBundle mainBundle] objectForInfoDictionaryKey:key_name]; 

tuo filePath è pari a zero, semplicemente perché non riesce a trovare il file - controllare l'ortografia & controllo se il file che si sta tentando di letti da sia effettivamente in fascio ecc

+0

Sono riuscito a ottenere il plist usando [NSBundle mainBundle] .infoDictionary. L'info plist non era nella lista delle risorse del pacchetto di copie per il target. Le informazioni sono archiviate altrove? – Darren

1

Non credo che ci sia un altro modo (a meno che non sia il file info.plist quindi vedere il commento di Damo), invece mi concentrerei sul capire perché il filePath è nullo, forse il file plist non è più in target> costruire fasi> copiare le risorse del bundle?

+1

Sono stato in grado per ottenere il plist usando [NSBundle mainBundle] .infoDictionary. L'informazione non era presente nell'elenco delle risorse del pacchetto di copia. Immagino ci sia qualcosa di speciale nell'informazione? – Darren

+0

Ben individuato: non avrei mai pensato che, ma dopo aver controllato il mio progetto corrente, anche info.plist è deselezionato per la copia – Damo

0

Sostituire

[[NSBundle mainBundle] pathForResource:@"FILE_NAME" ofType:@"plist"] 

con

[[NSBundle mainBundle] pathForResource: @"Info" ofType: @"plist"] 
Problemi correlati