2010-12-22 13 views
8

Tengo un plist que localicé. ¿Cómo cargo la plist correctamente?¿Cómo cargo el archivo localizado apropiado?

En este momento, estoy usando este código:

NSArray *numbersArray = [[NSArray alloc] initWithContentsOfFile: 
     [[NSBundle mainBundle] pathForResource:@"Numbers" ofType:@"plist"]]; 

¿Qué necesito para cambiar el código para el fin de cargar el plist localizada?

+0

Eso debería funcionar como está. ¿No lo es? –

+0

@DaveDeLong - Sí, mi error. No limpié mi compilación y la eliminé del simulador. – Moshe

Respuesta

12
NSArray *numbersArray = [[NSArray alloc] 
    initWithContentsOfFile: 
    [[NSBundle mainBundle] pathForResource:@"Numbers" ofType:@"plist"]]; 

Esto debería funcionar siempre que garantice que tiene la siguiente distribución paquete:

MyApp.app 
// no Numbers.plist here 
..... 
en.lproj/ 
    Numbers.plist // english-version 
fr.lproj/ 
    Numbers.plist // french-version 

Lo importante es que usted no hacer tienen un archivo Numbers.plist en el nivel raíz (aka- nivel no localizado) del paquete, ya que si lo hace, ese Numbers.plist siempre tendrá prioridad sobre la versión localizada (por razones de rendimiento).

+0

¿Hay alguna manera de cargar la versión en inglés si la versión en francés no existe? – yuf

+0

@yuf: ¿Se está preguntando qué pasaría si, por ejemplo, ha localizado su archivo Numbers.plist en 'en' &' es' (y no 'fr'), y un usuario francés utiliza su aplicación? Puedo actualizar la respuesta para explicar, si es así ... – NSGod

+0

sí, lo soy. No es relevante para esta pregunta. Hice una pregunta por separado y si puede responderla, ¡por favor! – yuf

Cuestiones relacionadas