- На Mac вы должны использовать
NSPersistentDocument
для большинства случаев, когда это будет полезно.
- В iOS 5+ вы должны использовать
UIDocument
.
Если это невозможно, вы можете либо заставить родителя наблюдать за изменениями в своих дочерних элементах, либо установить для дочерних элементов измененный флаг на своих родительских элементах. В любом случае вы можете изменить какое-либо свойство «последнее изменение», чтобы оно стало грязным.
Вы также можете создать метод, такой как -hasChangedChildren
, который будет обходить дочернее дерево и возвращать YES
, если он грязный. Преимущество этого состоит в том, что вы фактически не модифицируете объект, поэтому вы не влияете на оптимизацию Core Data. Документы не запрещают изменять hasChanges
, чтобы вести себя таким образом, но я лично был бы осторожен при этом.
Но если это вообще возможно, вы должны использовать классы документов, поскольку это то, для чего они предназначены.
Вас также могут заинтересовать Основные вопросы о данных - отношения, UUID и грязные состояния .