I saw these lines in a demo project, but I couldn\'t understand why it did that.
[self willChangeValueForKey:@\"names\"]; [self didChangeValueForKey:@\"names\"];
Those have to do with manually controlling key value observing. Normally the system takes care of it but these allow you some control. Look at this documentation to understand when and how to use them here.