开发者

Is this a bug in the documentation? -existingObjectWithID:error: or -objectWithID: seem to claim different things that don't match

开发者 https://www.devze.com 2023-01-03 01:39 出处:网络
From the docs: -existingObjectWithID:error: If there is a managed object with the given ID already registered in the

From the docs: -existingObjectWithID:error:

If there is a managed object with the given ID already registered in the context, that object is returned directly; otherwise the corresponding object is faulted into the context.

This method might perform I/O if the data is uncached.

Unlike objectWithID:, thi开发者_JAVA技巧s method never returns a fault.

Well, this is paradox!

They say that -existingObjectWithID:error: may return a fault ("faulted into context"). And at the same time, they say that -objectWithID: does return a fault, but -existingObjectWithID:error: does not. So what's true now? Both method descriptions talk about returning faulted objects.

Can someone clear that up?


Faulted does not mean "make into a fault". It actually means, "create a full fledged object" the opposite of what you expect. In other words, a faulted object is not a fault. The nomenclature is confusing.

It arises because of the term "to fire a fault" from the old DB days. In that term you took a fault i.e. the ghost of an object and "fired" it thus causing it to load its attributes. This got shorten from "firing the fault" to "faulting" which a naive reader/listener would assume means "to make into a fault."

In training, I've used the term "ghost" as a synonym for fault and "materialize" for faulting. It helps clear up the terminology and expresses my childhood love of Scooby-Do at the same time.

0

精彩评论

暂无评论...
验证码 换一张
取 消