//创建cell的数据模型类,用来保存一个cell的所有数据
@interface CellModel : NSObject
//保存图标名称
@property(nonatomic,copy)NSString *icon;
//保存发行公司名称
@property(nonatomic,copy)NSString *publisher;
//保存应用名称
@property(nonatomic,copy)NSString *name;
//保存投票人数
@property(nonatomic,copy)NSString *numRatings;
//保存价格
@property(nonatomic,copy)NSString *price;
//保存评分
@property(nonatomic,copy)NSString *rating;
//类的初始化方法
- (instancetype)initWithDictionary:(NSDictionary *)dict;
+ (id)cellModelWithDictionary:(NSDictionary *)dict;
@end
- (instancetype)initWithDictionary:(NSDictionary *)dict
{
if (self = [super init]) {
_icon = [dict objectForKey:@"Icon"];
_publisher = [dict objectForKey:@"Publisher"];
_name = [dict objectForKey:@"Name"];
_price = [dict objectForKey:@"Price"];
_rating = [dict objectForKey:@"Rating"];
_numRatings = [[dict objectForKey:@"NumRatings"] stringValue];
}
return self;
}
@interface DataModel : NSObject
//保存所有数据
@property(nonatomic,retain)NSMutableArray *arrayData;
//类的单例初始化方法
+ (DataModel *)sharedDataModel;
@end
- (instancetype)init
{
if (self = [super init]) {
_arrayData = [NSMutableArray array];
//读取plist文件路径
NSString *plistPath = [[NSBundle mainBundle]pathForResource:@"Data" ofType:@"plist"];
//读取plist内容
NSArray *array = [NSArray arrayWithContentsOfFile:plistPath];
//遍历数据,将数据转换成cell的模型
for (NSDictionary *dict in array) {
CellModel *model = [[CellModel alloc]initWithDictionary:dict];
2.2将实例化创建出来的cellModel对象保存到数据管理类(dataModel)的arrayData属性中
[_arrayData addObject:model];
}
}
return self;
}
//创建单例对象
+ (DataModel *)sharedDataModel
{
static DataModel *dm = nil;
if (dm == nil) {
dm = [[DataModel alloc]init];
}
return dm;
}
- (NSArray *)arrayData
{
if (_arrayData == nil) {
_dm = [DataModel sharedDataModel];
4.1将实例化出来的数据源管理类对象的arrData属性赋值给视图控制器的arrdata属性中
_arrayData = _dm.arrayData;
}
return _arrayData;
}
CellModel *cellModel = [self.arrayData objectAtIndex:indexPath.row];
+ (MyTableViewCell *)cellWithTableView:(UITableView *)tableView
{
static NSString *cellID = @"cellID";
//创建自定义cell对象
MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
if (cell == nil) {
cell = [[MyTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
}
return cell;
}
- (void)setCellModel:(CellModel *)cellModel
{
_cellModel = cellModel;
self.iconView.image = [UIImage imageNamed:cellModel.icon];
self.publishView.text = cellModel.publisher;
self.priceView.text = cellModel.price;
self.nameView.text = cellModel.name;
self.numRatingsView.text = cellModel.numRatings;
}