2 在main.m中定义可变数组,管理所有联系人,可添加新联系人对象,如果姓名或电话号码为空,打印添加失败。
3 获取某个分组下的所有联系人
4 根据电话号码搜索联系人
5 获取所有女性联系人
6 根据姓名删除联系人
#import <Foundation/Foundation.h>
#import "Contact.h"
#import "AddressBook.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Contact *con1 = [Contact contactWithName:@"张三" Num:@"165478" Sex:@"man" Address:@"多发点" Group:@"盆友"];
Contact *con2 = [Contact contactWithName:@"李四" Num:@"123456" Sex:@"woman" Address:@"多发点" Group:@"老乡"];
Contact *con3 = [Contact contactWithName:@"王五" Num:@"145632" Sex:@"man" Address:@"少发点" Group:@"阿瓦尔"];
Contact *tempCon = [Contact contactWithName:@"张天" Num:@"198745" Sex:@"woman" Address:@"多发点" Group:@"老乡"];
#if 0
// 创建可变数组存放联系人
NSMutableArray *array = [NSMutableArray arrayWithObjects:con1, con2, con3, nil];
// 2 在main.m中定义可变数组,管理所有联系人,可添加新联系人对象,如果姓名或电话号码为空,打印添加失败。
if (tempCon.name != nil && tempCon.num != nil) {
[array addObject:tempCon];
NSLog(@"添加成功");
} else {
NSLog(@"添加失败");
}
for (int i = 0; i < array.count; i++) {
// [[array objectAtIndex:i] infoContact];
Contact *temp = [array objectAtIndex:i];
[temp infoContact];
}
// 3 获取某个分组下的所有联系人
// 创建数组负责接收符合条件的对象
NSMutableArray *groupArr = [NSMutableArray array];
for (int i = 0; i < array.count; i++) {
Contact *temp = [array objectAtIndex:i];
if ([temp.group isEqualTo:@"老乡"]) {
// 把符合条件的对象放到新数组里
[groupArr addObject:temp];
}
}
// 遍历
for (int i = 0; i < groupArr.count; i++) {
Contact *temp = [groupArr objectAtIndex:i];
[temp infoContact];
}
// 4 根据电话号码搜索联系人
NSMutableArray *numArr = [NSMutableArray array];
for (int i = 0; i < array.count; i++) {
Contact *temp = [array objectAtIndex:i];
if ([temp.num isEqualTo:@"123456"]) {
// 把符合条件的对象放到新数组里
[numArr addObject:temp];
// 遍历符合条件的
[temp infoContact];
}
}
// 5 获取所有女性联系人
// 6 根据姓名删除联系人
NSMutableArray *deleArr = [NSMutableArray array];
for (int i = 0; i < array.count; i++) {
Contact *temp = [array objectAtIndex:i];
if ([temp.name isEqualToString:@"张三"]) {
// [array removeObject:temp];
[deleArr addObject:temp];
}
}
// 在遍历数组的同时不建议同时对数组进行操作,这里采用一个临时数组deleArr做桥接
[array removeObjectsInArray:deleArr];
// 7 删除某个分组全部联系人
// 8 展示通讯录中所有联系人
for (int i = 0; i < groupArr.count; i++) {
Contact *temp = [groupArr objectAtIndex:i];
[temp infoContact];
}
#endif
#pragma mark - 知识点 封装
AddressBook *ad = [AddressBook addressBook];
[ad addContactWithName:@"df" Num:@"123645" Sex:@"man" Address:@"g" Group:@"盆友"];
[ad addContactWithName:@"张三" Num:@"165478" Sex:@"man" Address:@"多发点" Group:@"盆友"];
[ad contactGroup:@"乡"];
}
return 0;
}
可以用封装,封装方法,简化代码
- (void)contactGroup:(NSString *)group{
NSMutableArray *groupArr = [NSMutableArray array];
for (int i = 0; i < self.array.count; i++) {
Contact *temp = [self.array objectAtIndex:i];
if ([temp.group isEqualTo:group]) {
// 把符合条件的对象放到新数组里
[groupArr addObject:temp];
}
}
// 遍历
for (int i = 0; i < groupArr.count; i++) {
Contact *temp = [groupArr objectAtIndex:i];
[temp infoContact];
}
}
- (void)contactNum:(NSString *)num{
NSMutableArray *numArr = [NSMutableArray array];
for (int i = 0; i < self.array.count; i++) {
Contact *temp = [self.array objectAtIndex:i];
if ([temp.num isEqualTo:@"123456"]) {
// 把符合条件的对象放到新数组里
[numArr addObject:temp];
// 遍历符合条件的
[temp infoContact];
}
}
if (numArr.count == 0) {
NSLog(@"搜索失败");
}else {
for (int i = 0; i < self.array.count; i++) {
Contact *temp = [self.array objectAtIndex:i];
[temp infoContact];
}
}
}
- (void)list{
for (int i = 0; i < self.array.count; i++) {
[[self.array objectAtIndex:i] infoContact];
}
}