OC中简易通讯录框架

Contact.h

#import <Foundation/Foundation.h>

@interface Contact : NSObject

{
@protected
    NSString *_name;
    NSString *_gender;
    NSString *_phoneNumber;
    NSString *_address;
    NSString *_group;
}


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

- (void)setGender:(NSString *)gender;
- (NSString *)gender;

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

- (void)setAddress:(NSString *)address;
- (NSString *)address;

- (void)setGroup:(NSString *)group;
- (NSString *)group;


- (instancetype)initWithName:(NSString *)name
                 phoneNumber:(NSString *)phoneNumber
                       group:(NSString *)group;

+ (instancetype)contactWithName:(NSString *)name
                    phoneNumber:(NSString *)phoneNumber
                          group:(NSString *)group;


- (void)show;


@end

Contact.m

#import "Contact.h"

@implementation Contact

- (void)setName:(NSString *)name
{
    _name = name;
}
- (NSString *)name
{
    return _name;
}

- (void)setGender:(NSString *)gender
{
    _gender = gender;
}
- (NSString *)gender
{
    return _gender;
}

- (void)setPhoneNumber:(NSString *)phoneNumber
{
    _phoneNumber = phoneNumber;
}
- (NSString *)phoneNumber
{
    return _phoneNumber;
}

- (void)setAddress:(NSString *)address
{
    _address = address;
}
- (NSString *)address
{
    return _address;
}

- (void)setGroup:(NSString *)group
{
    _group = group;
}
- (NSString *)group
{
    return _group;
}


- (instancetype)initWithName:(NSString *)name
                 phoneNumber:(NSString *)phoneNumber
                       group:(NSString *)group
{
    self = [super init];
    if (self) {
        _name = name;
        _phoneNumber = phoneNumber;
        _group = group;
    }
    return self;
}

+ (instancetype)contactWithName:(NSString *)name
                    phoneNumber:(NSString *)phoneNumber
                          group:(NSString *)group
{
    return [[Contact alloc] initWithName:name phoneNumber:phoneNumber group:group];
}


- (void)show
{
    NSLog(@"name = %@ gender = %@ phoneName = %@ address = %@ group = %@", _name, _gender, _phoneNumber, _address, _group);
}


@end

AddressBook.h

#import <Foundation/Foundation.h>
@class Contact;

@interface AddressBook : NSObject

{
    @protected
    NSMutableArray *_allDataMutableArray; // 存放联系人对象
    NSString *_verson;
}


- (void)setVerson:(NSString *)verson;
- (NSString *)verson;

// 添加联系人
- (void)addContact:(Contact *)contact;

// 根据姓名搜索联系人
- (Contact *)findContactWithName:(NSString *)name;

// 根据姓名删除联系人
- (void)deletContactWithName:(NSString *)name;


// 显示所有联系人
- (void)showAllContact;

@end

AddressBook.m

#import "AddressBook.h"
#import "Contact.h"

@implementation AddressBook

- (void)setVerson:(NSString *)verson
{
    _verson = verson;
}
- (NSString *)verson
{
    return _verson;
}


// 重写init方法内部实现可变数组的创建
- (instancetype)init
{
    self = [super init];
    if (self) {
        _allDataMutableArray = [NSMutableArray array];
    }
    return self;
}

// 添加联系人
- (void)addContact:(Contact *)contact
{
    if (contact.name.length == 0 && contact.phoneNumber == 0) {
        NSLog(@"姓名或者电话号码为空,添加失败!");
    } else {
        [_allDataMutableArray addObject:contact];
        NSLog(@"添加成功!");
    }
}

// 根据姓名搜索联系人
- (Contact *)findContactWithName:(NSString *)name
{
    for (Contact *c in _allDataMutableArray) {
        [c.name isEqualToString:name];
        return c;
    }
    return nil; // 如果找不到联系人,返回空
}

// 根据姓名删除联系人
- (void)deletContactWithName:(NSString *)name
{
    // 快速遍历中删除一个元素之后,结束遍历
    for (Contact *c in _allDataMutableArray) {
        if ([c.name isEqualToString:name] == YES) {
            [_allDataMutableArray removeObject:c];
            break;
        }
    }
}


// 显示所有联系人
- (void)showAllContact
{
    for (Contact *c in _allDataMutableArray) {
        [c show];
    }
}

@end

main.m

#import <Foundation/Foundation.h>
#import "Contact.h"
#import "AddressBook.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {

        // 1.创建通讯录
        AddressBook *addressBook = [[AddressBook alloc]init];

        // 2.创建联系人、并添加
        Contact *c1 = [Contact contactWithName:@"aa" phoneNumber:@"1469274283397" group:@"stu"];
        [addressBook addContact:c1];

        Contact *c2 = [Contact contactWithName:@"baoge" phoneNumber:@"18310074283397" group:@"stu"];
        [addressBook addContact:c2];

        // 显示所有联系人信息
        [addressBook showAllContact];

        // 查找联系人
        Contact *find = [addressBook findContactWithName:@"aa"];
        [find show];

        // 删除联系人
        NSLog(@"删除之后");
        [addressBook deletContactWithName:@"aa"];
        [addressBook showAllContact];

    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值