KVC
来源:互联网 发布:买网络教育本科多少钱 编辑:程序博客网 时间:2024/05/29 08:52
1. 在model.h文件中声明属性(声明的属性与获取的字典中键(key)一致)
//属性名必须与字典里面的键(key)一样,KVC才会把值(value)传递进来
@property (nonatomic,copy)NSString *imageUrl;
@property (nonatomic,copy)NSString *contents;
@property (nonatomic,copy)NSString *date;
@property (nonatomic,copy)NSString *imageUrl;
@property (nonatomic,copy)NSString *contents;
@property (nonatomic,copy)NSString *date;
@property(nonatomic,assign)NSInteger contentID;
2.在网络获取时用setValuesForKeysWithDictionary:把key-value一一对应
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManagermanager];
manager.responseSerializer.acceptableContentTypes= [NSSetsetWithObject:@"text/html"];
[manager GET:@"http://www.tingwen.me/akcms_category.php?id=1&page=1"parameters:nilsuccess:^(AFHTTPRequestOperation*operation, id responseObject) {
NSArray *dataArray = responseObject;
for (NSDictionary *dic in dataArray) {
//初始化model对象
NewsModel *newsModel = [[NewsModel alloc] init];
//从一个字典映射到一个对象里面,这是KVC里边的一个方法,不需要向以前一样把字典里边的键值取出来存在model属性里面
manager.responseSerializer.acceptableContentTypes= [NSSetsetWithObject:@"text/html"];
[manager GET:@"http://www.tingwen.me/akcms_category.php?id=1&page=1"parameters:nilsuccess:^(AFHTTPRequestOperation*operation, id responseObject) {
NSArray *dataArray = responseObject;
for (NSDictionary *dic in dataArray) {
//初始化model对象
NewsModel *newsModel = [[NewsModel alloc] init];
//从一个字典映射到一个对象里面,这是KVC里边的一个方法,不需要向以前一样把字典里边的键值取出来存在model属性里面
[newsModel setValuesForKeysWithDictionary:dic];
[self.datasourceaddObject:newsModel];
}
//数据封装完成后,需要刷新tableView显示新的数据内容
[self.tableViewreloadData];
} failure:^(AFHTTPRequestOperation*operation, NSError *error) {
// NSLog(@"error:%@", error);
}];
}
//数据封装完成后,需要刷新tableView显示新的数据内容
[self.tableViewreloadData];
} failure:^(AFHTTPRequestOperation*operation, NSError *error) {
// NSLog(@"error:%@", error);
}];
}
3.如果获取的文件中有关键字,用setValue:(id)value forUndefinedKey:(NSString*)key把关键字key对应的value赋值给重新定义的属性:(用self.contentID代替系统关键字id)
- (void)setValue:(id)value forUndefinedKey:(NSString *)key {
if ([key isEqualToString:@"id"]) {
self.contentID= (NSInteger)value;
}
if ([key isEqualToString:@"id"]) {
self.contentID= (NSInteger)value;
}
}
0 0
- KVC
- Kvc....
- KVC
- KVC
- KVC
- KVC
- KVC
- kvc
- KVC
- KVC
- KVC
- KVC
- KVC
- KVC
- KVC
- KVC
- KVC
- kvc
- 表单验证js封装
- 初识Apple WatchKit
- 实现Android-JNI本地C++调试
- [ElasticsSearch] 排序(一)
- success成功之后,跳转到一个新页面
- KVC
- linux中mmap系统调用原理分析与实现
- HDU 4453 Looploop (2012年杭州赛区现场赛A题)
- Android自学小疑问 之 Android 中this、 getApplicationContext()、getApplication()之间的区别
- Flume - MemoryChannel源码解析
- phalcon mysql 日志 添加
- UIAlertView(提示框)
- POI实战-java开发excel详解(第四章 常用操作-下拉列表)
- 浅析XSS攻击和防御