我有一个应用程序,它从rails api拉出来。我在xcode的帖子显示页面上遇到了问题。我基本上把所有与帖子相关的评论都拉出来并显示出来。为了简单起见,我在我的应用程序中的1个帖子中附加了1个评论,其余的没有评论。我遇到的问题是应用程序在每个帖子上显示相同的评论。
我检查了api并且每次都没有回复评论,所以我不确定是什么错?
这是我的代码:
拉开评论:
GFCredentialStore *credentialStore = [[GFCredentialStore alloc] init];
NSString *authToken = [credentialStore authToken];
NSLog(@"%@", authToken);
__weak typeof(self)weakSelf = self;
NSNumber *postId = self.postId;
NSString *urlString = [NSString stringWithFormat:@"%s%s%@%s", kBaseURL, kPostsURL, postId, kCommentsURL];
NSLog(@"%@", urlString);
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [GFPostResponseSerializer serializer];
[manager.requestSerializer setValue:authToken forHTTPHeaderField:@"auth_token"];
NSLog(@"%@", manager.requestSerializer.HTTPRequestHeaders);
[manager GET:urlString parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
__strong typeof(weakSelf)strongSelf = weakSelf;
strongSelf.comments = (NSArray *)responseObject;
[strongSelf.tableView reloadData];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
将注释属性分配给indexPath处的行的单元格: (基本上他们是两个部分,第一个只有1个单元格,并且使用我从另一个viewController中提取的帖子数据,另一部分是我的所有评论)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(indexPath.section == 0){
GFPostShowCell *cell = [tableView dequeueReusableCellWithIdentifier:@"showPostCell" forIndexPath:indexPath];
cell.groupNameLabel.text = [NSString stringWithFormat:@"Group: %@", self.groupName];
cell.postBodyLabel.text = self.postBody;
return cell;
} else {
GFCommentCell *cell = [tableView dequeueReusableCellWithIdentifier:@"commentCell" forIndexPath:indexPath];
NSDictionary *rootObject = self.comments[indexPath.row];
NSDictionary *comment = rootObject[@"comment"];
NSDictionary *user = comment[@"user"];
cell.usernameLabel.text = user[@"username"];
cell.commentBodyLabel.text = comment[@"body"];
return cell;
}
}
最后是一张显示评论的图片。蓝色注释部分在每个页面上显示相同。这篇文章很好。 (如果我正在显示评论,请忽略评论文本)