OC_简单版通讯录

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];

}

}

时间: 2024-12-06 23:46:37

OC_简单版通讯录的相关文章

分享一个近期写的简单版的网页采集器

分享一个近期写的简单版的网页采集器 功能特点: 1.可通过配置,保存采集规则. 2.可通过采集规则,进行数据采集. 3.可分页,分关键字,进行采集. 4.可保存数据至数据库,文本中. ........... 功能还比较简单,喜欢深入的可以继续深入下去,暂时还没有登录的功能,因为登录功能涉及到的范围比较广,待日后慢慢研究后再开发. 我先上个图让大家一睹为快吧: 首先看看页面,我们要采集这个网站的文章 接下来,首先是查找分页,获得分页里面的文章链接,接着查找内容页需要采集的字段,生成规则,进行采集.

Java实现简单版SVM

最近的图像分类工作要用到latent svm,为了更加深入了解svm,自己动手实现一个简单版的. 之所以说是简单版,因为没有用到拉格朗日,对偶,核函数等等.而是用最简单的梯度下降法求解.其中的数学原理我参考了http://blog.csdn.net/lifeitengup/article/details/10951655,文中是用matlab实现的svm. 源代码和数据集下载:https://github.com/linger2012/simpleSvm 其中数据集来自于libsvm,我找了其中

MFC抓取网页代码简单版。

最近又在网上找了一些有关MFC抓取网页代码的文章看,发现有个比较简单的代码,和大家分享下. CInternetSession session(NULL, 0); CHttpFile* htmlFile = NULL; CString strLine, strHtml; CString url = _T("http://www.tqyb.com.cn/data/gzWeather/gz_weatherForecastInDays.js?"); TCHAR sRecv[1024]; UIN

luogu P3808 【模板】AC自动机(简单版)

二次联通门 : luogu P3808 [模板]AC自动机(简单版) /* luogu P3808 [模板]AC自动机(简单版) 手速越来越快了 10分钟一个AC自动机 一遍过编译 + 一边AC 感觉不错 我也就做做板子题了.. */ #include <iostream> #include <cstring> #include <cstdio> #include <queue> #define Max 1000009 void read (int &

简单版猜拳游戏

界面很简单 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84

汇编 输入输出字符串(最简单版)

data segment max_len db 10 real_len db ? buf_str db 10 dup(0) CRLF DB 0AH,0DH,"$"; data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax xor ax,ax mov dx,offset max_len;输入 mov ah,10 int 21h mov bx,offset buf_str;去掉输入的最后一个回车字

JavaMail简单版实验测试

前言: 最近由于实现web商城的自动发送邮件功能的需求,故涉猎的邮箱协议的内部原理.现将简单版的Java Mail实例做个代码展示,并附上其中可能出现的bug贴出,方便感兴趣的读者进行测试! 1.载入相关jar包 客户端传输邮件需要用的jar包:activation.jar和mail.jar (下载:https://github.com/SeaSky0606/share) 2.JavaMail代码实现 1 package com.seasky.mail; 2 3 import java.util

SqlHelper 简单版

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; namespace AddressBook { class SqlHelper { /// <summary> /// 连接数据库的字符串 /// </summary> private static string co

一个简单的通讯录。。。

上课的时候老师布置了一个作业,利用结构体实现一个简单地通讯录,这可是我们大一的时候学期末的课设题目啊,不过还好现在的水平比之前高了那么一点.. 实现一个通讯录: 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名.性别.年龄.电话.住址 提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改指定联系人信息 5. 显示所有联系人信息 6. 清空所有联系人 7. 以名字排序所有联系人 这个是通讯录的主要功能. 这个比较大,所以我们写在三个文件里.