Is it possible to change this line:
NSInteger arrayCount = [self.array count];
to either
NSInteger names = self.names.count, or NSInteger names = [self.names count]
This is because I've seen a lot of inexperienced developers use array when naming an array, even though they should name using as high level of abstraction as possible (i.e. instead of nameArray, they should use names). And I think your style guide has a big influence within the Objective-C community.
Thanks