美文网首页
Object c类的设计-通讯录类

Object c类的设计-通讯录类

作者: 奔跑的小小鱼 | 来源:发表于2017-04-17 22:08 被阅读19次

    类名:Card

    【Card.h】

    #import<Foundation/Foundation.h>

    @interface Card:NSObject

    {

    NSString *_contanctName; //联系人

    NSString *_phoneNumber; //电话号

    //初始化方法(构造方法)

    -(id)initWithContactName:(Nssting *)name andPhoneNumber:(Nsstring *)number;

    //setter方法

    -(void)setContactName:(NSString *)name;

    -(void)setPhoneNumber:(NSString *)number;

    //getter方法

    -(NSString *)contactName;

    -(NString *)phoneNumber;

    //排序名片类对象的规则

    -(Bool)isSortByContactName:(Card *)aCard;//按照联系人排序,默认为升序

    -(BooL)isSortByphoneNumber:(card *)aCard;//按照电话号排序,默认为升序

    //打印Card类对象方法

    -(void)printCard;

    @end


    【Card.m】

    #import"Card.h"

    @implementation Card

    -(id)initWithCintactName:(NSString *)name andPphondNumber:(NSString *)number{

    self=[super init];

    if(self){

    _contactName=name;

    _phoneNumber=number;

    }

    return self;

    }

    -(void)setContactName:(NSString *)name{

    _contactName=name;

    }

    -(void)setPhoneNumber:(NSString *)number{

    _phoneNumber=number;

    }

    -(NSString *)contactName{

    return _contactName;

    }

    -(NString *)phoneNumber{

    return_phoneNumber;

    }

    -(Bool)isSortByContactName:(Card *)aCard{

    if([self contactName] compare:[aCard contactName]]==NSOrderedDescending){

    return YES;

    }

    return No;

    }

    -(BooL)isSortByphoneNumber:(card *)aCard{

    if(self phoneNumber] conpare:[aCard phoneNumber]]==NSOrderedDescending)){

    return YES;

    }

    return NO;

    }

    -(void)printCard{

    {

    NSLog(@"contactName=%@,phoneNumber=%@",[self contactName],[self phoneNumber])

    }

    @end


    phone Book电话本类

    #import<Foundation/Foundation.h>

    [PhoneBook.h]

    @interface PhoneBook: NSobjects{

    NSString *_masterName; //主机人名

    NSMutableArray *_cardList;//存储Card对象的可变数组

    //初始化方法(构造方法)

    -(id)initWithMasterName:(NSString *)name;

    //setter方法

    -(void)setMasterName:(NSString *)name;

    //getter方法

    -(NSString *)masterName;

    //添加联系人名片

    -(void)addContactCard:(Card *)card;

    //删除联系人名片(传入名片地址)

    -(void)removeCard:(Card *)card;/

    //遍历电话本

    -(void)showPhoneBook;

    //排序

    -(void)sortedByContactName;

    -(void)sortedByPhoneNumber;

    //测试当前类(类方法)

    +(void)testPhoneBook;

    }

    @end


    [PhoneBook.m]

    #import"PhoneBook.h"

    @implementtation PhoneBook

    -(id)initWithMasterName:(NSString *)name{

    self=[super init];

    if(self){

    _masterName=name;

    _cardList=[NSMubableArray array];//创建一个可变数组对象

    return self;

    }

    -(void)setMasterName:(NSString *)name{

    _masterName=name;

    }

    -(NSString *)masterName{

    return masterName;

    }

    -(void)addContactCard:(Card *)card{

    if([_cardList containsObject:aCard]){

    NSLog(@"联系人在列表中存在!")

    }else{

    [_cardList addObject:aCard];

    }

    -(void)removeCard:(Card *)card{

    [_cardList removeObject:aCard;

    -(void)showPhoneBook{

    for(Card *item in _cardList){

    [item printCard];

    }

    }

    -(void)sortedByContactName{

    _cardList sortUsingSelector:@selector( isSortByContactName:)];

    }

    -(void)sortedByPhoneNumber{

    _cardList sortUsingSelector:@selector( isSortByPponeNumber::)];

    }

    +(void)testPhoneBook

    {

    phoneBook *phoneBook=[phoneBook alloc]initWithMasterName:@"小华];

    //创建电话本联人,联系电话

    for(NSInteger i=0;i<10;i++){

    Card *item=[Card alloc] init];

    //联系人随机生成两位数

    item setContactName:[NSString stringWithFormat:@"联系人%2li",arc4andom()%100+1]];

    //电话号后四位随机生成

    item setPhoneNumber:[String StringWithFormat:@"140000%04i',arc4randome()%10000]];

    [phoneBook addContactCard:item];

    }

    //遍历电话本

    [phoneBook shwoPhoneBook];

    }


    【main.h】

    #import <Foundation/Foundation.h>

    #import<int argc,const char * arg[]){

    @autoeleasepool{

    NSLog(@"----------排序前--------");

    [phoneBook testPhoneBook]

    //打印结果(打印10次,随机数部份不一至)

    ----------排序前--------

    contactName = 联系人11,phoneNumber = 14000000033

    contactName = 联系人01,phoneNumber = 14000000003

    ...

    NSLog(@"----------按昭名字排序后--------");

    [phoneBook sortPhoneBookContactname];

    [phoneBook showPhoneBook];

    //打印结果(按名字降序排列)

    ----------按昭名字排序后--------

    contactName = 联系人01,phoneNumber = 14000000033

    contactName = 联系人11,phoneNumber = 14000000023

    ...

    NSLog(@"----------按照电话排序后--------");

    [phoneBook sortPhoneBookByPhoneNumber];

    [phoneBook showPhoneBook];

    //打印结果

    ----------按照电话排序后--------

    contactName = 联系人11,phoneNumber = 14000000023

    contactName = 联系人01,phoneNumber = 14000000033

    //删除联系人

    [phoneBook removeContactCard:[phoneBook->CardList[3]];

    NSLog(@"count =%li",[phoneBook->_cardList count]);

    //打印结果:9

    [phoneBook showPhoneBook]

    打印结果:

    contactName = 联系人11,phoneNumber = 14000000023

    contactName = 联系人01,phoneNumber = 14000000033

    ....

    //注:电话本中下标为3的元素被删除

    }

    return 0;

    }

    相关文章

      网友评论

          本文标题:Object c类的设计-通讯录类

          本文链接:https://www.haomeiwen.com/subject/ghutzttx.html