Порядок оценки неуточнен, см. http://en.wikipedia.org/wiki/Sequence_point
Это та же ситуация, что и пример с примером оператора + :
Рассмотрим две функции
blockquote >f()
иg()
. В C и C ++ оператор+
не связан с точкой последовательности, и поэтому в выраженииf()+g()
возможно, что либоf()
, либоg()
будут выполнены в первую очередь.
Это контролирует, распространяются ли удаления во время события изменения, т.е. после didChange...
вызова метода (явного или синтезированного.)
Насколько мне известно, это влияет только на флаги на объектах в памяти, помечая их как подлежащие или не подлежащие удалению. Это влияет только на то, как контекст управляет объектами в памяти, но не на то, как контекст управляет удалением на диске. Если установлено значение YES, то контекст пометит объект как удаляемый и будет считать его удаленным из графа объектов. Однако при отмене флаг будет отменен, как если бы вы удалили объект напрямую.
Этот флаг доступен, потому что могут возникнуть ситуации, когда необходимо, чтобы объекты оставались на месте некоторое время даже после завершения удаления или каскадного отношения. Когда НЕТ, контекст вернет "удаленный" объект до момента следующего сохранения.
Это продвинутая функция, и она редко используется.