Что означает, что извлекаемое свойство является статическим, а не обновляется динамически? - PullRequest
1 голос
/ 17 января 2010

Apple говорит в ссылке на класс NSFetchedPropertyDescription:

Обратите внимание, однако, что в отличие от списка воспроизведения извлеченное свойство является статическим - оно делает не динамически обновлять себя как объекты в целевом объекте изменить.

Хорошо, но что именно это означает: статическое свойство? Не обновляется динамически при изменении объекта назначения?

Может кто-нибудь объяснить это?

Что я получаю в голове, так это то, что извлеченное свойство предназначено для слабых ссылок. Например: плейлист может ссылаться на песни, но плейлист не «владеет» ими. Если плейлист удаляется, песня никогда не удаляется, как следствие этого. Кроме того, песни не имеют обратной ссылки на плейлист, они не должны знать, что он вообще существует.

Хорошо, поэтому, если песня удаляется, плейлист не уведомляется каким-либо образом? Или что Apple пытается сказать мне?

1 Ответ

2 голосов
/ 17 января 2010

По сути, это означает, что вы должны вручную обновлять полученный результат каждый раз, чтобы получать последние изменения вашего исходного объекта.

Я только что ознакомился с вашей цитируемой документацией. Следующий абзац после вашей цитаты должен прояснить:

Эффект выбранного свойства похоже на выполнение запроса на выборку себя и поместив результаты в переходный атрибут, хотя с рамки управления деталями. В в частности, извлекаемое свойство не извлекается, пока не будет запрошено, и Затем результаты кэшируются до объект превращается в неисправность. Ты используешь refreshObject: mergeChanges: (NSManagedObjectContext) вручную обновить свойства - это вызывает запрос на выборку, связанный с этим свойство будет выполнено снова, когда В следующий раз происходит ошибка объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...