
1 - (instancetype) initWithDict:(NSDictionary *)Dict{
2 //** 对模型进行赋值 */
3 if (self = [super init]) {
4 [self setValuesForKeysWithDictionary:Dict];
5 }
6 return self;
7 }
其中setValuesForKeysWithDictionary:方法可以批量将字典中的元素赋值到对应名称的self成员变量中,字典中有几个键值对,就可以有几个与key相同的成员变量,要求字典键值名称必须与模型成员名称相同,便可自动复制。字典中的键值对可不全部显示出来。 KVC还可以查找路径 1 NSArray *array = [ persons valueForKeyPath: @“name”] KVC按照路径取值时,如果对象不包含指定对象时,会自动进入对象内部,查找对象属性。 2.懒加载固定格式 #PRagma mark 懒加载
1 - (NSArray *)questions
2 {
3 if (_questions == nil) {
4 // 1.加载plist
5 NSArray *tempArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"questions" ofType:@"plist"]];
6
7 // 2.创建模型数组
8 NSMutableArray *arrayM = [NSMutableArray array];
9 for (NSDictionary *dict in tempArray) {
10 [arrayM addObject:[HZHquestions questionWithDict:dict]];
11 }
12 _questions = arrayM;
13 }
14 return _questions;
15 }
先判断为空,然后加载plist文件,使用for循环创建模型数组,将模型数组保存到成员变量数组中。 3.设置状态栏显示
1 // 设置状态栏高亮显示
2 - (UIStatusBarStyle)preferredStatusBarStyle{
3 return UIStatusBarStyleLightContent;
4 }
5 // 设置状态栏常规显示
6 - (UIStatusBarStyle)preferredStatusBarStyle{
7 return UIStatusBarStyleDefault;
8 }
9 // 设置状态栏可见性
10 - (BOOL)prefersstatusBarHidden{
11
12 return YES;
13 }
UIStatusBarStyle是状态栏状态,UIStatusBarStyleLightContent和UIStatusBarStyleDefault是状态栏的两个状态
4.判断两个字符串是否相等不能用“==”,要用isEqualToString: [options isEqualToString:question.answer] ,判断两个字符处是否相等。 5.重写description方法,跟踪对象数据。