I saw these lines in a demo project, but I couldn\'t understand why it did that.
[self willChangeValueForKey:@\"names\"]; [self didChangeValueForKey:@\"names\"];
Posting this in July 2013, and it no longer seems to be necessary to call will/didChangeValueForKey. It seems to be taken care of automatically, even if you have a custom setter.