模型的运用是使用tableView的重点。
如下为创建和使用模型过程的基本和走过的坑:
创建:
1、根据数据的返回和项目的实际,创建模型的名称,继承于NSObject,如Person;
2、设置模型的属性,模型的属性名和数据返回的名称要一致,如不一致需要进行处理,如name、sex、age、id等,id为系统保留名称,需要进行特殊处理。
使用iOS自带的方法进行数据转模型设置:
设置Id为userId,在如下方法中进行转换:
- (void)setValue:(id)value forKeyPath:(NSString *)keyPath
{
if ([keyPath isEqualToString:@"id"]) {
self.userId = value;
}
}
如果数据返回的字段非常多,我们只取我们需要的字段,直接运用setValuesForKeysWithDictionary会造成crash,这是需要进行防crash保护:
- (void)setValue:(id)value forUndefinedKey:(NSString *)key
{
// 可以不进行任何设置
}
使用第三方框架进行数据转模型的设置:
根据框架的要求进行设置,如使用MJExtension,需要进行如下设置:
3、初始化实例方法,初始化类方法等创建类,也可以初始化解析数据返回数组的方法(选择使用)
4、在tableView中创建模型数组直接使用。
使用模型数组的方法:
1、不需要改变模型的任何属性直接使用
2、需要根据模型的相关属性设置辅助属性进行灵活的显示
设置辅助属性:
创建在模型数组中的模型,都在内存中创建好了,只要更改相关的属性即可,用指针指向即可。
直接更改数组中保存的模型的相关属性,不需要重新更新数组中的数据,因为更改的模型和数组中保存的所有的模型是同一个,即地址没有改变,只是所具有的某些属性改变了。