@racer1988 worth putting out there, if you come up w/ a solid architecture/design for this, it'd be an amazing repo/tutorial/blog post or something.
So going back to the core Data case: Let's say I iterate over every object in my collection view, fetch the update from the server, update the object, save the context of the object to fix the update.
(because every object uses its own API so can't batch them) This triggers a NSFetched Result Controller Delegate per object, which in turns triggers a perform Updates per object.
If i have let's say 100 objects, I get the collection View object to potentially flicker 100 times.
B/c the pointers are the same, its impossible to see that the object has "changed" b/c there's no previous state to go off of.
Since @racer1988 You're right about the equality check being correct.