这次选择的是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