2011-05-16 20 views
5

Tengo un plist en mi paquete de recursos que copio por referencia de carpeta. Por algún motivo, mi edición & guardada (en Xcode) no se copiará/actualizará hasta que elimine la aplicación. De lo contrario, se copiará la lista anterior (antes de la edición), aunque elimine la aplicación. ¿Se están quedando datos?Build & Run: plist no se actualiza

El plist se edita con bastante frecuencia, por lo que la depuración lleva mucho tiempo de esta manera. ¿Cómo puedo asegurarme de que el plist se copie correctamente?

+0

desinstalación y reinstalación resuelto mi problema en el entorno de depuración ... gracias –

Respuesta

1

¿Está copiando el archivo plist en la carpeta Documentos? si está copiando eso, debe eliminar la aplicación del simulador de iPhone cada vez que lance la aplicación.

También puede hacer una cosa ... puede copiar el archivo en la carpeta de documentos cada vez que inicie la aplicación. Porque el contenido de la carpeta del documento solo se puede eliminar eliminando la aplicación del simulador/dispositivo.

Luego no hay necesidad de reiniciar el simulador/dispositivo y xcode.

+0

El plist se copia en el paquete de recursos, no en Documentos. Por lo tanto, esperaría que los datos del recurso se eliminen cuando se elimine la aplicación, pero borrar la aplicación solo no lo hace. – Morrowless

+0

No se pueden eliminar los datos del recurso; debe eliminarlos manualmente. Por cierto: si no está copiando el archivo en Documentos, entonces no podrá editarlo. – Saurabh

+0

Debo aclarar que la edición se realiza en Xcode, no en tiempo de ejecución. – Morrowless

0

Esta es una respuesta laaate; pero bueno, el OP no marcó una respuesta correcta, así que aquí está mi solución. Creé dos listas de propiedades. El primero es la información de depuración, como números constantes, cadenas y booleanos. Llamé a esta lista de propiedades SETTINGS.plist. Mi otro plist es el que uso para guardar los datos del juego. Dado que el menú SETTINGS es el que actualizo a través de la interfaz xcode, lo actualizo cada vez que ejecuto la aplicación.

-(void)setUpPlist{ 

listPath = [[self docsDir] stringByAppendingPathComponent:@"SETTINGS.plist"]; 

if (![[NSFileManager defaultManager] fileExistsAtPath:listPath]) { 
    [[NSFileManager defaultManager] copyItemAtPath:[[NSBundle mainBundle] pathForResource:@"SETTINGS" ofType:@"plist"] toPath:listPath error:nil]; 

} 
else { 
    [[NSFileManager defaultManager] removeItemAtPath:listPath error:nil]; 
    [[NSFileManager defaultManager] copyItemAtPath:[[NSBundle mainBundle] pathForResource:@"SETTINGS" ofType:@"plist"] toPath:listPath error:nil]; 
} 

savedData = [NSMutableDictionary dictionaryWithContentsOfFile:listPath]; 
} 

-(NSString *)docsDir{ 
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
} 

Aquí, listPath es de NSString tipo y savedDate es de tipo NSMutableDictionary. Espero que esto ayude.

Cuestiones relacionadas