TableView中Model层数据

本文介绍了TableView在不同数据结构下(NSArray-NSDictionary-NSArray与NSArray-NSDictionary)如何从plist文件加载Model层数据的方法。通过具体实现代码展示了如何将字典数据转化为对象,并构建完整的数据模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TableView中Model层数据
一、如果plist文件中的形式:NSArray —> NSDictionary —>NSArray
最外层的字典
+ (instancetype)carGroupsWithDict:(NSDictionary *)dict
{
   
return [[self alloc] initWithDict:dict];
}

- (
instancetype)initWithDict:(NSDictionary *)dict
{
   
self = [super init];
    [
self setValue:dict[@"title"] forKey:@"title"];
   
self.carGroups = [SUNCar carsWithArray:dict[@"cars"]];
   
return self;
}

+ (
NSArray *)carGroups
{
   
NSArray *array = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"cars_total.plist" ofType:nil]];
   
NSMutableArray *arrayM = [NSMutableArray array];
   
for (NSDictionary *dict in array) {
        [arrayM
addObject:[self carGroupsWithDict:dict]];
    }
   
return arrayM;
}

最里层的数组
+ (instancetype)carWithDict:(NSDictionary *)dict
{
   
return [[self alloc] initWithDict:dict];
}

- (
instancetype)initWithDict:(NSDictionary *)dict
{
   
self = [super init];
    [
self setValuesForKeysWithDictionary:dict];
   
return self;
}

+ (
NSArray *)carsWithArray:(NSArray *)array
{
   
NSMutableArray *arrayM = [NSMutableArray array];
   
for (NSDictionary *dict in array) {
        [arrayM
addObject:[self carWithDict:dict]];
    }
        
return arrayM;
}

二、如果plist文件中的形式:NSArray —> NSDictionary 
+ (instancetype)tgWithDict:(NSDictionary *)dict
{
   
return [[self alloc] initWithDict:dict];
}
- (
instancetype)initWithDict:(NSDictionary *)dict
{
   
self = [super init];
   
if (self) {
        [
self setValuesForKeysWithDictionary:dict];
    }
   
return self;
}

+ (
NSMutableArray *)tgs
{
   
NSArray *array = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"tgs.plist" ofType:nil]];
   
   
NSMutableArray *arrayM = [NSMutableArray array];
   
for (NSDictionary *dict in array) {
        [arrayM
addObject:[self tgWithDict:dict]];
    }
   
return arrayM;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值