I saw these lines in a demo project, but I couldn\'t understand why it did that.
[self willChangeValueForKey:@\"names\"]; [self didChangeValueForKey:@\"names\"];
Be really careful when overriding didChangeValueForKey:. The best thing is not to do it at all. But if you do, make sure you call super, otherwise you will have a memory leak as demonstrated here: https://github.com/jfahrenkrug/KVOMemoryLeak
didChangeValueForKey:
super