// appModel.h // Created by zzqqrr on 17/8/19. // #import <Foundation/Foundation.h> @interface appModel : NSObject @property (nonatomic,copy) NSString *title; @property (nonatomic,copy) NSString *icon; - (id)initWithDict:(NSDictionary *)dict; /**类方法用+号*/ + (id)appWithDict:(NSDictionary *)dict; @end // // appModel.m // Created by zzqqrr on 17/8/19.
//
#import "appModel.h" @implementation appModel //- (id)initWithDict:(NSDictionary *)dict ios7以前不推荐用id - (instancetype)initWithDict:(NSDictionary *)dict { if(self==[super init]) { self.title=dict[@"title"]; self.icon=dict[@"icon"]; } return self; } //- (id)appWithDict:(NSDictionary *)dict ios7以前不推荐用id //直接以类名方式调用,不用alloc 规范标准推荐加上 +(instancetype)appWithDict:(NSDictionary *)dict { //return [[appModel alloc] initWithDict:dict]; return [[self alloc] initWithDict:dict]; } @end
//懒加载应用数据 - (NSArray *)apps { if(_apps==nil) { //获得plist文件全路径 NSString *path=[[NSBundle mainBundle] pathForResource:@"main.plist" ofType:nil]; //加载数组 //_apps=[NSArray arrayWithContentsOfFile:path]; NSArray *dictArray=[NSArray arrayWithContentsOfFile:path]; NSMutableArray *appArray=[NSMutableArray array]; //把字典数组转换成模型对象,放到数组中 for (NSDictionary *dict in dictArray) { appModel *apps=[[appModel alloc] initWithDict:dict]; appModel *test=[appModel appWithDict:dict];//类名方式调用,同上//把对象添加到数组上 [appArray addObject:apps]; } _apps=appArray; } return _apps; }
@interface ViewController () @property (nonatomic,strong) NSArray *apps; @end NSDictionary *dict=self.apps[index];//字典 appModel *model=self.apps[index];//模型