Из документов:-existingObjectWithID:error:
Если существует управляемый объект с данным идентификатором, уже зарегистрированным в контексте, тот объект возвращается непосредственно; иначе соответствующий объект дан сбой в контекст.
Этот метод мог бы выполнить ввод-вывод, если данные не кэшируются.
В отличие от objectWithID: этот метод никогда не возвращает ошибку.
Ну, это - парадокс!
Они говорят что-existingObjectWithID:error: может возвратить ошибку ("дал сбой в контекст"). И в то же время они говорят что-objectWithID: действительно возвращает ошибку, но-existingObjectWithID:error: не делает. Таким образом, что верно теперь? Оба описания метода говорят о возврате неработающих объектов.
Кто-то может разрешить это?
«Виноватый» не означает «превратить в ошибку». На самом деле это означает «создать полноценный объект», противоположный тому, что вы ожидаете. Другими словами, неисправный объект не является ошибкой. Номенклатура сбивает с толку.
Он возникает из-за термина «уволить неисправность» из старых времен DB. В этом термине вы взяли ошибку, то есть призрак объекта, и «запустили» его, заставив его загрузить свои атрибуты. Это было сокращено от «выстрел вины» до «вины», которое, как предположил бы наивный читатель / слушатель, означает «превратить в ошибку».
В тренировках я использовал термин «призрак» как синоним ошибки и «материализоваться» для ошибки. Это помогает прояснить терминологию и в то же время выражает мою детскую любовь к Скуби-До.