创建通讯录及其详情页面

这次选择的是MVC写法.

首先创建一个空工程,然后创建Model,TableViewCell和ViewController


创建好文件后,开始写代码

将工程改为了手动内存管理

首先AppDelegate.m,将导航视图控制器设置为根视图

    AddressbookViewController *addressVC = [[AddressbookViewController alloc] init];
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:addressVC];
    self.window.rootViewController = nav;
    [addressVC release];
    [nav release];



addressBookModel中的代码如下:

在.h文件中将通讯录中成员的基本信息:姓名,年龄等设置为属性,然后定义初始化方法

@interface addressbookModel : NSObject
@property(nonatomic, retain) NSString *name;
@property(nonatomic, retain) NSString *gender;
@property(nonatomic, retain) NSString *phoneNum;
@property(nonatomic, retain) NSString *age;
@property(nonatomic, retain) NSString *head_image;
@property(nonatomic, retain) NSString *hobby;

//初始化方法
//- (instancetype)initWithDictionary:(NSDictionary *)dic;



这里的初始化方法是一般的初始化方法,我试验了一下在初始化方法里加入block

- (void)getModelFromDictionary:(NSDictionary *)dic andModelBlock:(void(^)(addressbookModel *addressModel))addressBookBlock;

这两种方法结果并没有不同,只是另一种尝试罢了,后者较前者麻烦,所以平时并不使用


.m文件代码

#import "addressbookModel.h"

@implementation addressbookModel
//自定义初始化,把传过来的字典解析成model数据类型
- (instancetype)initWithDictionary:(NSDictionary *)dic{
    self = [super init];
    if (self) {
        self.name = dic[@"name"];
        self.gender = dic[@"gender"];
        self.head_image = dic[@"head_image"];
        self.hobby = dic[@"hobby"];
        self.age = dic[@"age"];
        self.phoneNum = dic[@"phoneNum"];
    }
    return self;
}
- (void)getModelFromDictionary:(NSDictionary *)dic andModelBlock:(void (^)(addressbookModel *))addressBookBlock{
    addressbookModel *addressModel = [[addressbookModel alloc] initWithDictionary:dic];
    //把转化完成的block回传给controller
    addressBookBlock(addressModel);
}
@end
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值