Cuáles son las limitaciones de NSUserDefaults?

El almacenamiento de datos de forma permanente en un iPhone generalmente se realiza utilizando Core Data o sqlite3. La mayoría de las personas prefieren usar NSUserDefaults como almacenamiento para las preferencias de la aplicación, en lugar de usarlo como una base de datos normal (como sqlite).

He descubierto que se puede almacenar una gran cantidad de datos en NSUserDefaults, es extremadamente fácil de usar y rápido. Entonces, ¿por qué no usar esto como un almacenamiento permanente? ¿Cuáles son las limitaciones de NSUserDefaults como base de datos?

Actualizar
Frecuentemente uso tres formas diferentes de guardar mis datos en el disco.

Core dataSerializando objetos a listas NSUserDefaults

Ya no uso FMDB (o sqlite directamente). ¿Cuáles son las principales ventajas y desventajas de cada enfoque?

Algunas ventajas de NSUserDefaults que he encontrado:

La clasificación, agrupación, etc. se puede hacer fácilmente usando NSPredicate.NSUserDefaults es seguro para subprocesos.e necesita una línea para buscar y guardar datos en NSUserDefaults.

Respuestas a la pregunta(4)

Su respuesta a la pregunta