iOS开发基础-九宫格坐标(6)
继续对iOS开发基础-九宫格坐标(5)中的代码进行优化。
优化思路:把字典转模型部分的数据处理操作也拿到模型类中去实现,即将 ViewController 类实现中 apps 方法搬到 WJQAppInfo 类实现。
实例代码
在 WJQAppInfo.h 中添加一个向外公开的接口,其返回处理好的模型数组,方法定义如下:
+ (NSArray *)appInfoArray;
实现代码如下:
1 //WJQAppInfo.m。将数据处理部分搬到模型类中进行处理 2 + (NSArray *)appInfoArray { 3 NSString *path = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"]; 4 NSArray *arrayM = [NSArray arrayWithContentsOfFile:path]; 5 6 NSMutableArray *appInfoArray = [NSMutableArray array]; 7 for (NSDictionary *dict in arrayM) { 8 [appInfoArray addObject:[WJQAppInfo appInfoWithDict:dict]]; 9 } 10 return appInfoArray; 11 }
此时, ViewController 视图控制器就不再需要关心数据处理的内部细节了,只负责模型和视图之间的交互。修改属性 apps 的 getter 方法:
1 //Viewcontroller.m 2 - (NSArray *)apps { 3 if (!_apps) { 4 _apps = [WJQAppInfo appInfoArray]; 5 } 6 return _apps; 7 }
实例代码:http://pan.baidu.com/s/1dEi2qE9