- tableView 和 collectionView 的数据联动
左侧 tableView 中的分类点击后,获取对应的数据,填充到右侧 collectionView 中。
研究了下读本地 JSON 和远程 JSON 的写法,读 HTTP 请求数据是通过构建 request 来获取
- (void)fetchRemoteJSON:(NSString *) pathForResource {
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:pathForResource]];
[request setHTTPMethod:@"GET"];
NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
[[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
// 捕获错误
NSError *error2;
// 转换格式
NSDictionary *dictionary2 = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error2];
// 捕获错误
if (error2) {
NSLog(@"JSON parse error:%@", error2.localizedDescription);
}
NSLog(@"remoteData %@", dictionary2);
}] resume];
}
今天加上了左侧和右侧不同的数据,联动起来最终是这个样子
部落排行的 Demo 做到这里也差不多了,后续还可以加上数据缓存相关的一些东西。
OC 里边没有像 WEB 中 Promise 的写法,更多是通过 Block 回掉的方式来实现异步操作。如果是嵌套的异步操作不会造成像 JS 中的毁掉地狱么?下午培训听 @justiny 讲了我们可以用 GCD 和 Operation 来更优雅地写同步异步代码。
- IOS 并发和异步编程 培训
重新认识了多线程,多线程间通信的各种问题。总结起来就是避免使用多线程。