Class "Person" is inherited by "Employee" which is inherited by "EmployeeList"
In my main model I initialize a new Employee object, setting the firstName and lastName, and then addEmployee to an EmployeeList.
Inside the addEmployee method I want to sort the NSArray of Employee objects by lastName
Here is what I've tried but it's not sorting the list.
#import "EmployeeList.h"
@interface EmployeeList()
@property (strong, nonatomic) NSMutableArray *employees; // of Employee
@end
@implementation EmployeeList
- (NSMutableArray *)employees
{
if (!_employees) _employees = [[NSMutableArray alloc] init];
return _employees;
}
- (void)addEmployee:(Employee *)employee
{
[self.employees addObject:employee];
NSSortDescriptor *sortDescriptor =
[NSSortDescriptor sortDescriptorWithKey:@"lastName"
ascending:YES
selector:@selector(caseInsensitiveCompare:)];
[self.employees sortedArrayUsingDescriptors:@[sortDescriptor]];
_numberEmployees++;
}
Main model:
EmployeeList *mgrList = [[EmployeeList alloc] init];
Employee *employee = [[Employee alloc] init];
employee.firstName = object[@"firstName"];
employee.lastName = object[@"lastName"];
employee.phoneNumber = object[@"phoneNumber"];
[mgrList addEmployee:employee];
Employeehave a method calledcaseInsensitiveCompare:? I doubt (because that's anNSStringmethod). Read the documentation ofNSSortDescriptorand think about your code.