// 自定义初始化方法
- (instancetype)init{
self.dic = [NSMutableDictionary dictionary];
return self;
}
// 获得 首字母大写
- (NSString *)uppercaseString:(Contact *)contact{
NSString *str = [contact.name capitalizedString];
NSString *strNew = [str substringToIndex:1];
return strNew;
}
// 添加联系人
- (void)addContact:(Contact *)contact{
// 大写首字母获得
NSString *str = [self uppercaseString:contact];
NSMutableArray *array = [self.dic objectForKey:str];
if (!array) {
// 初始化数组空间
array = [NSMutableArray array];
// 创建键值对
[self.dic setObject:array forKey:str];
}
[array addObject:contact];
}
// 获取某个分组名称下所有联系⼈,并且按照姓名升序排列。
- (void)sortInGroupByName:(NSString *)str{
NSMutableArray *array = [self.dic objectForKey:str];
if (array != nil) {
[array sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
Contact *c1 = (Contact *)obj1;
Contact *c2 = (Contact *)obj2;
return [c1.name compare:c2.name];
}];
}
NSLog(@"%@",array);
}
// 从通讯录中根据电话号码搜索联系⼈
- (void)searchByNum:(NSString *)phoneNum{
for (NSString *keys in self.dic) {
NSMutableArray *array = [self.dic objectForKey:keys];
for (Contact *contact in array) {
if ([contact.phoneNum isEqualToString:phoneNum]) {
NSLog(@"%@",contact);
}
}
}
}
// 获取所有⼥性的联系⼈,并且按照年龄的降序排列
- (void)sortFemaleByAge{
NSMutableArray *array = [NSMutableArray array];
for (NSString *keys in self.dic) {
NSMutableArray *tempArray = [self.dic objectForKey:keys];
for (Contact *contact in tempArray) {
if ([contact.sex isEqualToString:@"女"]) {
[array addObject:contact];
}
}
}
if (array.count > 0) {
[array sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
Contact *c1 = (Contact *)obj1;
Contact *c2 = (Contact *)obj2;
if (c1.age > c2.age) {
return NSOrderedDescending;
}else if (c1.age == c2.age){
return NSOrderedSame;
}else{
return NSOrderedAscending;
}
}];
}
}
// 根据姓名删除某个联系⼈
- (void)deleteByName:(NSString *)name{
Contact *contact = nil;
NSString *str = [[name capitalizedString] substringToIndex:1];
NSMutableArray *arr = self.dic[str];
for (Contact *c in arr) {
if (c.name == name) {
contact = c;
}
}
if (arr.count > 1) {
[arr removeObject:contact];
}else{
[self.dic removeObjectForKey:str];
}
NSLog(@"%@",self.dic);
}
// 删除某个分组的全部联系⼈
- (void)deleteGroup:(NSString *)group{
[self.dic removeObjectForKey:group];
}
- (NSString *)description{
return [NSString stringWithFormat:@"%@",self.dic];
}
Contact
最新推荐文章于 2021-02-28 01:18:58 发布