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