En général: Il n'y a pas de manière simple. Mais je vais décrire une approche. Si vous ne vous souciez pas de l'écrasement des modifications: Conservez un horodatage des modifications les plus récentes apportées à chaque enregistrement et un horodatage de chaque synchronisation. Lors de la synchronisation, vous obtenez une liste de toutes les mises à jour sur l'iPhone depuis la dernière synchronisation et toutes les mises à jour sur le serveur. Vous écrivez de l'iPhone au serveur si l'horodatage de l'iPhone pour cet enregistrement est plus récent que celui du serveur, et vice versa.
Mais vous vous en souciez probablement. Supposons que vous ayez édité une note intitulée "Où se retrouver le vendredi". Il a commencé vide. Maintenant, au téléphone, vous avez écrit "Ma maison". Dix minutes plus tard, votre ami édite la même note sur le serveur et écrit «Le dîner». Qui gagne? Stack Overflow ne peut pas répondre à cette question pour vous. C'est spécifique à l'application. OK, donc modifiez l'approche ci-dessus: si la version du serveur d'un enregistrement et la version locale ont été modifiées depuis la dernière synchronisation, vous devez demander à l'utilisateur quoi faire. C'est l'algorithme de base. Si vous vous souciez beaucoup des modifications qui ne sont pas remplacées, au point que vous souhaitez fusionner les modifications à différents endroits dans les mêmes documents, votre système commencera à se rapprocher de la complexité des systèmes de contrôle de version comme Subversion ou Git. Pas du tout simple.
Il serait utile que vous posiez une question plus précise et/ou que vous nous disiez plus de détails sur l'application que vous construisez. –