類名:Card
【Card.h】
#import<Foundation/Foundation.h>
@interface Card:NSObject
{
NSString *_contanctName; //聯(lián)系人
NSString *_phoneNumber; //電話號
}
//初始化方法(構(gòu)造方法)
-(id)initWithContactName:(Nssting *)name andPhoneNumber:(Nsstring *)number;
//setter方法
-(void)setContactName:(NSString *)name;
-(void)setPhoneNumber:(NSString *)number;
//getter方法
-(NSString *)contactName;
-(NString *)phoneNumber;
//排序名片類對象的規(guī)則
-(Bool)isSortByContactName:(Card *)aCard;//按照聯(lián)系人排序,默認為升序
-(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對象的可變數(shù)組
//初始化方法(構(gòu)造方法)
-(id)initWithMasterName:(NSString *)name;
//setter方法
-(void)setMasterName:(NSString *)name;
//getter方法
-(NSString *)masterName;
//添加聯(lián)系人名片
-(void)addContactCard:(Card *)card;
//刪除聯(lián)系人名片(傳入名片地址)
-(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];//創(chuàng)建一個可變數(shù)組對象
}
return self;
}
-(void)setMasterName:(NSString *)name{
_masterName=name;
}
-(NSString *)masterName{
return masterName;
}
-(void)addContactCard:(Card *)card{
if([_cardList containsObject:aCard]){
NSLog(@"聯(lián)系人在列表中存在!")
}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:@"小華];
//創(chuàng)建電話本聯(lián)人,聯(lián)系電話
for(NSInteger i=0;i<10;i++){
Card *item=[Card alloc] init];
//聯(lián)系人隨機生成兩位數(shù)
item setContactName:[NSString stringWithFormat:@"聯(lián)系人%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]
//打印結(jié)果(打印10次,隨機數(shù)部份不一至)
----------排序前--------
contactName = 聯(lián)系人11,phoneNumber = 14000000033
contactName = 聯(lián)系人01,phoneNumber = 14000000003
...
NSLog(@"----------按昭名字排序后--------");
[phoneBook sortPhoneBookContactname];
[phoneBook showPhoneBook];
//打印結(jié)果(按名字降序排列)
----------按昭名字排序后--------
contactName = 聯(lián)系人01,phoneNumber = 14000000033
contactName = 聯(lián)系人11,phoneNumber = 14000000023
...
NSLog(@"----------按照電話排序后--------");
[phoneBook sortPhoneBookByPhoneNumber];
[phoneBook showPhoneBook];
//打印結(jié)果
----------按照電話排序后--------
contactName = 聯(lián)系人11,phoneNumber = 14000000023
contactName = 聯(lián)系人01,phoneNumber = 14000000033
//刪除聯(lián)系人
[phoneBook removeContactCard:[phoneBook->CardList[3]];
NSLog(@"count =%li",[phoneBook->_cardList count]);
//打印結(jié)果:9
[phoneBook showPhoneBook]
打印結(jié)果:
contactName = 聯(lián)系人11,phoneNumber = 14000000023
contactName = 聯(lián)系人01,phoneNumber = 14000000033
....
//注:電話本中下標為3的元素被刪除
}
return 0;
}