OC 通讯录 实现的方法

来源:互联网 发布:金蝶kis mac版 编辑:程序博客网 时间:2024/06/04 15:59

//给NSString类添加方法 获取group


#import "NSString+Characters.h"

@implementation NSString (Characters)

- (NSString *)group1:(Person *)person

{

    NSString *str = [[person.namesubstringWithRange:NSMakeRange(0, 1)]uppercaseString];

    return str;

}

@end


//添加联系人

- (BOOL)addPerson:(Person *)aPerson

{

    NSString *str1 = [NSStringstring];

    aPerson.group = [str1 group1:aPerson];

    NSMutableArray *arr = [_allPersonDicobjectForKey:aPerson.group];

    for (Person *pin arr) {

        if ([aPerson.nameisEqualToString:p.name]) {

            NSLog(@"添加失败");

            return NO;

        }

    }


    

    if ([aPerson.nameisEqualToString:@""] || [aPerson.numberisEqualToString:@""]) {

        NSLog(@"添加失败");

        return NO;

        

    }else{

        

        NSMutableArray *array = [_allPersonDicobjectForKey:aPerson.group];

        if (array == nil) {

            NSMutableArray *arr = [NSMutableArrayarray];

            [_allPersonDicsetValue:arr forKey:aPerson.group];

            [arr addObject:aPerson];

        }else{

            [array addObject:aPerson];

        }

        return YES;

    }

    

    return 0;

}


//按照号码查询联系人

- (Person *)findPersonWithPhoneNum:(NSString *)aPhoneNum

{

    for (NSArray *arrin [_allPersonDicallValues]) {

        for (Person *p in arr) {

            if ([p.numberisEqualToString:aPhoneNum]) {

                return p;

            }else{

                return nil;

            }

        }

    }

    return 0;

    

}


//按照性别查找联系人并排序

- (NSArray *)findPersonsWithSex:(NSString *)aSex

{


    NSMutableArray *array = [NSMutableArrayarray];


    for (NSArray *arrin [_allPersonDicallValues]) {

        for (Person *pin arr) {

            

            if ([p.sexisEqualToString:aSex]) {

                

                [array addObject:p];

                

            }

        }

    }

    NSSortDescriptor *age = [[NSSortDescriptoralloc]initWithKey:@"age"ascending:YES];

    

    [array sortedArrayUsingDescriptors:@[age]];

    

    return array;

}


//按照姓名查找联系人并修改信息

- (BOOL)changePersonWithName:(NSString *)name phoneNum:(NSString *)aNum sex:(NSString *)aSex age:(NSUInteger)aAge

{

    NSString *str = [NSStringstringWithFormat:@"%ld",aAge];

    for (NSMutableArray *arrin [_allPersonDicallValues]) {

        for (Person *p in arr) {

            if ([p.nameisEqualToString:name]) {

                if ([nameisEqualToString:@""]&&[aNumisEqualToString:@""]&&[aSexisEqualToString:@""]&&[strisEqualToString:@""]) {

                    return NO;

                }else{

                    p.age = aAge;

                    p.number = aNum;

                    p.sex = aSex;


                    return YES;

                }

            }

        }

    }

    return 0;

}


//按照姓名查找联系人并删除联系人,如果此分类没有联系人 删除此分组

- (BOOL)deletePersonWithName:(NSString *)aPersonName

{

    NSMutableArray *array = [NSMutableArrayarray];

    NSMutableDictionary *dic = [NSMutableDictionarydictionary];


    for (NSMutableArray *arrin [_allPersonDicallValues]) {

        for (Person *p in arr) {

            if ([p.nameisEqualToString:aPersonName]) {

//                [arr removeObject:p];

                [array addObject:p];

                

                for (Person *pin array) {

                    [[_allPersonDicobjectForKey:p.group]removeObject:p];

                }

                

                if ([arr count] == 0) {

                    

//                    [_allPersonDic removeObjectForKey:p.group];

                    [dic setValue:arr forKey:p.group];

                    

                    for (NSString *strin dic) {

                        [_allPersonDic removeObjectForKey:str];

                    }

                }

            }

        }

    }


    return 0;


}


//按照分组名查找分组并删除

- (BOOL)deleteGroup:(NSString *)aGroupName

{

    [_allPersonDicremoveObjectForKey:aGroupName];

    NSMutableArray *array = [_allPersonDicobjectForKey:aGroupName];

    if (array == nil){

        return YES;

    }else{

        

        return NO;

    }

    return 0;

}


//重写description 拼接字符串

- (NSString *)description

{

    NSMutableString *str = [NSMutableStringstring];

    [str appendString:@"\n"];

    NSArray *array =_allPersonDic.allKeys;

    for (NSString *keyin array) {

        [str appendFormat:@"%@\n",key];

        for (Person *pin _allPersonDic[key]) {

            [str appendFormat:@"%@",p];

        }

    }

    return str;

}



0 0
原创粉丝点击