[quote=“AdamPreble”]This is a somewhat subtle area. You’re correct, however, the examples you cite are the same.
However, the to-many KVC accessors allow us to respond to mutations of a mutable array in a way that wouldn’t otherwise be possible. In this chapter, by implementing -insertObject:inEmpoyeesAtIndex: and -removeObjectFromEmployeesAtIndex:, we can respond to objects being added and removed from the array, as long as they are doing so in a KVC-compliant way (like NSArrayController does).
-mutableArrayValueForKey: is illustrating how we can obtain a proxy NSMutableArray object that allows us to act as if we were operating directly on the model’s NSMutableArray, and still provide KVO notifications via bindings and so forth.
Thanks for the answer Adam.
So basically deep down in NSArrayControllers innards, it calls -mutableArrayValueForKey: and not just -valueForKey: to get the proxy object with this added functionality. And by being more KVC compliant with our document object, we can respond to these actions as adding and removing objects to/from the array.