这篇博文讲的是微博评论列表的页面和如何对微博发评论。
有上面的效果视图可以知道,在微博评论视图中第一个cell是显示微博的内容,接下来的cell才是显示评论内容,评论内容的显示包括:发评论人的昵称,评论内容和评论的时间;而发评论视图就是一个简单的textview和一个评论button,这部分简单。
(1)微博评论视图
①获取微博评论的API是https://api.weibo.com/2/comments/show.json 它的请求的参数除了access_token和微博的id号之外,我还用到了一个参数,就是page,之前已经说过了,数据的返回是以页为单位的,这里一页返回的评论数默认就是50,当然你也可以设置这个参数count来改变每一页返回的评论数,我没有这么做。
所以一共就有三个参数。
+ (NSString *)returnCommentUrlStringWithID:(long long)weiboID page:(int)page {
NSString *urlString = [[NSString alloc] initWithFormat:@"%@?access_token=%@&id=%lld&page=%d",COMMENTS,[InfoForSina returnAccessTokenString],weiboID,page];
return urlString;
}
其中的COMMENTS表示这个API。
数据的请求和解析如下:
- (void) continueLoadData:(int)page {
//GCD异步获取数据
dispatch_async(dispatch_get_global_queue(0, 0), ^{
dispatch_sync(dispatch_get_global_queue(0, 0), ^{
hud.labelText = @"正在加载评论数据...";
[hud show:YES];
[self.view addSubview:hud];
NSString *urlString = [InfoForSina returnCommentUrlStringWithID:_status.statusId page:page];
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10];
NSData *commentListData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *dataListString = [[NSString alloc] initWithData:commentListData encoding:NSUTF8StringEncoding];
NSDictionary *dataListDictionary = [dataListString objectFromJSONString];
_totalNum = [[dataListDictionary objectForKey:@"total_number"] integerValue];
[_commentArray addObjectsFromArray:[dataListDictionary objectForKey:@"comments"]];
});
dispatch_sync(dispatch_get_main_queue(), ^{
[self.