OC语言写通讯录Word下载.docx

上传人:b****5 文档编号:19942965 上传时间:2023-01-12 格式:DOCX 页数:13 大小:18.79KB
下载 相关 举报
OC语言写通讯录Word下载.docx_第1页
第1页 / 共13页
OC语言写通讯录Word下载.docx_第2页
第2页 / 共13页
OC语言写通讯录Word下载.docx_第3页
第3页 / 共13页
OC语言写通讯录Word下载.docx_第4页
第4页 / 共13页
OC语言写通讯录Word下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

OC语言写通讯录Word下载.docx

《OC语言写通讯录Word下载.docx》由会员分享,可在线阅读,更多相关《OC语言写通讯录Word下载.docx(13页珍藏版)》请在冰豆网上搜索。

OC语言写通讯录Word下载.docx

+(id)addressContactWithName:

-(void)contactInformation;

//按姓名排

-(NSComparisonResult)compareByName:

(AddressContact*)aContact;

//按照年龄

-(NSComparisonResult)compareByAge:

 

-(NSString*)description;

@end

#import"

AddressContact.h"

@implementationAddressContact

//@synthesizename=_name,gender=_gender,address=_address,groupName=_groupName,number=_number,age=_age;

(NSString*)age{

self=[superinit];

if(self){

_name=name;

_groupName=groupName;

_gender=gender;

_address=address;

_age=age;

_number=number;

}

returnself;

(NSString*)groupName{

self=[superself];

AddressContact*p=[[AddressContactalloc]initWithName:

namegender:

gendernumber:

numberaddress:

addressgroupName:

groupNameage:

age];

returnp;

-(void)contactInformation{

NSLog(@"

%@%@%@%@%@%@"

_name,_gender,_number,_address,_groupName,_age);

-(NSComparisonResult)compareByName:

(AddressContact*)aContact

return[_namecompare:

[aContactname]];

-(NSComparisonResult)compareByAge:

if(_age<

[aContactage]){

returnNSOrderedDescending;

}elseif(_age==[aContactage]){

returnNSOrderedSame;

}else{

returnNSOrderedAscending;

-(NSString*)description{

return[NSStringstringWithFormat:

@"

_name,_gender,_number,_address,_groupName,_age];

@interfaceAddressBook:

NSMutableDictionary*_addressBook;

@property(nonatomic,retain)NSMutableDictionary*addressBook;

//添加联系人到_addressBook中

-(void)addContact:

//获取某个分组的所有联系人并且按姓名升序排序

-(NSArray*)contactsWithGroupName:

//根据电话搜索联系人

-(AddressContact*)searhContactByPhoneNum:

(NSString*)phoneNum;

//按性别找人

-(NSArray*)contactsWithGender:

(NSString*)gender;

//删除某个分组的全部联系人。

-(NSMutableDictionary*)RemoveGropPerson:

(NSString*)strGrup;

//根据姓名删除某个联系人。

-(NSMutableDictionary*)removeOneContact:

(AddressContact*)oneContact;

AddressBook.h"

@implementationAddressBook

-(id)init

//将字典初始化,

_addressBook=[NSMutableDictionarydictionary];

#pragmamark添加联系人

//判断名字,电话号是否为空

if((aContact.name==nil)||(aContact.number==nil)){

联系人添加失败"

);

return;

//取首字母,当做key值

NSString*first=[aContact.namesubstringToIndex:

1];

//判断首字母

if([_addressBookobjectForKey:

first]==nil){

//如果通过first在字典中取不到Value说明没有这个分组存在,那么创建一个分组

//创建可变数组,添加首字母相同的person到数组中

NSMutableArray*tempArr=[[NSMutableArrayalloc]init];

tempArr=[NSMutableArrayarrayWithObject:

aContact];

//添加到字典中,以首字母当做Key值,可变数组当做Value,存入管理字典中

[_addressBooksetObject:

tempArrforKey:

first];

//如果存在这个分组的Value,那么直接添加。

//直接添加联系人

[[_addressBookobjectForKey:

first]addObject:

//获取某个分组的所有联系人并且按姓名升序排序,【这里面可以改为用block排序】

-(NSArray*)contactsWithGroupName:

(NSString*)groupName

NSArray*temp=[_addressBookobjectForKey:

groupName];

//排序compareByName方法已经在联系人类中实现

return[tempsortedArrayUsingSelector:

@selector(compareByName:

)];

//通过电话号码查找联系人。

返回一个联系人的对象。

【改为用block排序】

-(AddressContact*)searhContactByPhoneNum:

(NSString*)phoneNum

//这里的group就是遍历Key的值。

for(NSString*groupin_addressBook){

//AddressContact对象遍历数组[_addressBookobjectForKey:

group]

NSArray*arr=[_addressBookobjectForKey:

group];

for(AddressContact*cinarr){

//判断电话

if([phoneNumisEqualToString:

[cnumber]]){

returnc;

//没有返回nil

returnnil;

-(NSArray*)contactsWithGender:

(NSString*)gender{

//定义可变数组

NSMutableArray*arr=[NSMutableArrayarray];

for(AddressContact*cin[_addressBookobjectForKey:

group]){

//判断性别

if([genderisEqualToString:

[cgender]]){

[arraddObject:

c];

//排序方法compareByAge已经写在了AddressContact中。

[arrsortUsingSelector:

@selector(compareByAge:

returnarr;

(NSString*)strGrup

NSArray*temp=[_addressBookallKeys];

for(NSString*keyintemp)

{

if([keyisEqualToString:

strGrup])

[_addressBookremoveObjectForKey:

key];

return_addressBook;

(AddressContact*)oneContact{

for(NSString*keyin_addressBook){

NSMutableArray*arr=[_addressBookobjectForKey:

for(AddressContact*oneinarr){

if([one.nameisEqualToString:

oneContact.name]){

[arrremoveObject:

one];

NSString+Characters.h"

/*

作业:

实现中等难度通讯录。

需求:

1、定义联系⼈人类AddressContact。

实例变量:

2、在main.m中定义字典,分组管理所有联系人。

分组名为26个⼤写的英⽂字⺟。

3、可以添加联系人对象,如果姓名或电话号码为空,添加失败。

添加联系⼈到匹配的分组。

4、获取某个分组名称下所有联系⼈,并且按照姓名升序排列。

5、从通讯录中根据电话号码搜索联系人。

6、获取所有女性的联系人,并且按照年龄的降序排列。

7、根据姓名删除某个联系人。

8、删除某个分组的全部联系人。

*/

实现通讯录,需求:

1、创建联系人类AddressPerson,联系人可以存储姓名、地址、邮箱、电话号码。

2、创建通讯录AddressBook类。

3、通讯录可以添加联系人。

姓名不能为空。

4、通讯录输出所有联系人。

按照姓名首字母分组,使用字典按首字母存储信息。

5、可以按照姓名、电话号码进行联系人搜索。

6、联系人按姓名排序,要求使用block。

intmain(intargc,constchar*argv[]){

@autoreleasepool{

//A组

AddressContact*per1=[AddressContactaddressContactWithName:

啊呀"

gender:

f"

number:

1111"

address:

sdsd"

groupName:

A"

age:

13"

];

AddressContact*per1_2=[AddressContactaddressContactWithName:

Andongni"

22222"

15"

AddressContact*per1_3=[AddressContactaddressContactWithName:

AoNil"

m"

20"

AddressContact*per2=[AddressContactaddressContactWithName:

Bibo"

1414"

B"

9"

AddressContact*per3=[AddressContactaddressContactWithName:

Cady"

1313"

C"

7"

#pragmamark一、:

以下为存储的示例代码:

【我们通讯录的存储思想就是这样的^_^】

//第一步:

将同一分组的人添加到一个数组中

NSMutableArray*groupA=[NSMutableArrayarray];

//添加组名为A的数据到数组groupA中

[groupAaddObject:

per1];

per1_2];

per1_3];

//添加组名为B的数据到数组groupB中

NSMutableArray*groupB=[NSMutableArrayarray];

[groupBaddObject:

per2];

//添加组名为C的数据到数组groupC中

NSMutableArray*groupC=[NSMutableArrayarray];

[groupCaddObject:

per3];

//第二步:

//将各个数组中的值作为Value,分组名groupName作为Key值,存入字典中

NSMutableDictionary*contactDict=[NSMutableDictionarydictionary];

//[contactDictsetObject:

groupAforKey:

per1.groupName];

[contactDictsetObject:

//跟上面一样;

groupBforKey:

groupCforKey:

//NSLog(@"

contactDict=%@"

contactDict);

#pragmamark二、我们开始封装添加,查找,删除,联系人的方法。

创建AdressBook类用来管理我们操作通讯录的方法。

//AddressBook是一个管理类,他负责对通讯录的操作,和信息的存取。

AddressBook*book=[[AddressBookalloc]init];

AddressContact*per4=[AddressContactaddressContactWithName:

Docter"

1212"

sgfhd"

D"

12"

//存入通讯录。

[bookaddContact:

per4];

per3];

%@"

book.addressBook);

NSArray*ww=[bookcontactsWithGroupName:

======%@"

ww);

C==%@"

[contactDictobjectForKey:

]);

//通过电话号码查找联系人

AddressContact*dd=[booksearhContactByPhoneNum:

dd==%@"

dd);

//按性别排序

AddressContact*per5=[AddressContactaddressContactWithName:

Demaxiya"

888888"

per5];

NSArray*a=[bookcontactsWithGender:

a==%@"

a);

//获取某个分组的所有联系人并且按姓名升序排序

//NSArray*name=[bookcontactsWithGroupName:

per5.groupName];

NSArray*name1=[bookcontactsWithGroupName:

name1);

//NSMutableDictionary*dct=[bookRemoveGroupPerson:

//NSLog(@"

dct=%@"

dct);

NSMutableDictionary*d=[bookremoveOneContact:

d);

NSMutableDictionary*t=[bookRemoveGropPerson:

t);

return0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1