NSManagedObjectContextDidSaveNotification
содержит все три бита информации, которые вам необходимо синхронизировать с сервером. Отметьте [notification userInfo]
, и вы найдете три набора внутри: NSInsertedObjectsKey
, NSUpdatedObjectsKey
и NSDeletedObjectsKey
Если вы хотите узнать, какие свойства объекта изменились, для этого потребуется, чтобы вы отслеживали их самостоятельно, используя KVO. Я бы рекомендовал против этого, поскольку шансы того уровня усилий, которые стоит того, чтобы просто подтолкнуть весь объект к серверу, невелики.
Обновление № 2
При дальнейшем ковырении:
Начиная с NSManagedObjectContextWillSaveNotification
вы можете просматривать каждый набор и обращаться к методу changedValues
. Вы можете хранить ссылку на этот словарь до тех пор, пока не получите NSManagedObjectContextDidSaveNotification
, а затем обработать изменения. Все еще звучит очень тяжело для меня.
Обновление
Какова ваша конечная цель?!?!
Если вы пытаетесь выяснить, что нужно отправить на сервер, значит, уровень атрибута слишком низок. Вы должны синхронизироваться на уровне объекта.
Если вы просто пытаетесь сохранить некоторую внутреннюю согласованность внутри своего приложения, значит, вы думаете слишком, слишком низко. Это решенная проблема. Базовые данные решили это.