La mejor práctica para sincronizar el service web con el almacenamiento sin connection en iOS

He estado trabajando en algunas aplicaciones iOS que hablan con una API REST en el server web y que sincronizan algunos datos para el uso fuera de línea. La aplicación luego almacena datos localmente si la connection de networking no está disponible y se sincroniza con el back-end cada vez que la connection a Internet está disponible.

Me pregunto si hay un buen patrón o set de reglas o biblioteca que se pueda usar. Preferiría no codificar esto una y otra vez. Sé que la lógica de negocio / synchronization sería diferente para cada aplicación, pero el rest del trabajo (es decir, almacenarlo localmente, llamando a la API REST) ​​puede extraerse.

¿Algunas ideas?

Utilizo el marco RestKit en mi aplicación para el escenario exacto que describes. Los datos descargados se almacenan en una tienda Core Data para uso sin connection.