I'm trying to understand how NSArrayController works...
- When I create an NSMutableArray "employeeArray" to hold "Person" object.

- I use NSArrayController in GUI and bind with the "employeeArray".

- I add two buttons for adding and removing "Person" objects in "employeeArray". Both buttons are binded with the received action "add:" and "remove:" of NSArrayController.

- Inorder to do something else when adding/removing "Person" objects in "employeeArray", I add two methods:
- (void)insertObject:(Person *)p inEmployeeArrayAtIndex:(NSUInteger)index;
- (void)removeObjectFromEmployeeArrayAtIndex:(NSUInteger)index;
Question:
- I didn't do anything(write any code) to let NSArrayController know the two methods above, why they are called automatically when I click the add/remove button? What happened?
- What add/remove method does NSArrayController use?
- Does NSArrayController smart enough to recognized those methods? What if I modified the method names randomly, will it be called correctly?