Actualizar y cambiar la configuración de archivos plist con nuevas versiones de una aplicación

Tengo un archivo de configuración predeterminada en la carpeta de recursos de mi aplicación, y en el primer inicio que se copia en la carpeta de documentos.

En las versiones sucesivas de la aplicación, ¿cómo puedo combinar la configuración de plist en sus documentos con las nuevas claves y valores (posiblemente anidados) que se han agregado desde la versión anterior?

He visto un patrón donde las propiedades se crean realmente como un NSDictionary en la aplicación (con todas las configuraciones predeterminadas), y luego las configuraciones actuales guardadas en el archivo plist se combinan con ese diccionario, y luego se guardan sobre la lista actual.

¿Es ese un buen enfoque? Si es así, ¿cómo hace para fusionar los NSDictionary que podrían tener varios valores anidados con arrays y sub diccionarios?

Además, ¿se recomienda tener un archivo de plist personalizado por separado para la configuración, o debería usar siempre NSUserDefaults? ¿NSUserDefaults maneja el control de versiones y el cambio de valores predeterminados?

Muchas gracias,

Micro

Respuestas a la pregunta(1)

Su respuesta a la pregunta