- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
- (void)fetchImages {
if (self.profileImages == nil) {
self.profileImages = [[NSMutableDictionary alloc] initWithCapacity:200];
}
dispatch_async(dispatch_get_global_queue(0, 0), ^{
for (id tweet in self.timeline) {
TWRequest *fetchUserImageRequest = [[TWRequest alloc] initWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://api.twitter.com/1/users/profile_image/%@", [tweet valueForKeyPath:@"user.screen_name"]]] parameters:nil requestMethod:TWRequestMethodGET];
[fetchUserImageRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
if ([urlResponse statusCode] == 200) {
[self.profileImages setObject:[UIImage imageWithData:responseData] forKey:[tweet valueForKeyPath:@"user.screen_name"]];
NSArray *indexPath = [NSArray arrayWithObject:[NSIndexPath indexPathForRow:[self.timeline indexOfObject:tweet] inSection:0]];
[self.tableView reloadRowsAtIndexPaths:indexPath withRowAnimation:UITableViewRowAnimationNone];
}
}];
}
});
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"FavoriteCell"];
// configure cell
id tweet = [self.timeline objectAtIndex:[indexPath row]];
UILabel *tweetLabel = (UILabel *)[cell viewWithTag:102];
tweetLabel.text = [tweet objectForKey:@"text"];
UILabel *usernameLabel = (UILabel *)[cell viewWithTag:101];
usernameLabel.text = [tweet valueForKeyPath:@"user.name"];
UIImageView *profileImage = (UIImageView *)[cell viewWithTag:100];
profileImage.image = [self.profileImages objectForKey:[tweet valueForKeyPath:@"user.screen_name"]];
UILabel *dateLabel = (UILabel *)[cell viewWithTag:103];
NSString *labelString = [[tweet objectForKey:@"created_at"] substringToIndex:10];
dateLabel.text = labelString;
return cell;
}
我得到了时间轴,然后想要获取时间轴中所有用户的个人资料图像。我需要遍历推文并获取图像。我很好奇如何确定何时获取所有图像然后重新加载 tableview。到目前为止,这还没有发生。 TWRequest 在表重新加载后运行。我在这里做错了什么?也许有更好的方法来做到这一点?
非常感谢。
最佳答案
那是因为 [TWRequest performRequestWithHandler:] 是一个异步方法。为什么需要重新加载整个表?为什么不在获取图像时(在处理程序 block 的末尾)重新加载单元格。
如果您真的想重新加载整个表,只需对所有已完成的请求进行计数,并在所有完成后重新加载表。
如果你想重新加载单个单元格,你可以这样做:
dispatch_sync(dispatch_queue_get_main(), ^{
[self.tableView reloadRowsAtIndexPaths:indexPaths withRowAnimation:0];
}
关于ios - TWRequest 在后台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9418492/
我正在使用 TWrequest 在表格 View 中显示我的 Twitter 列表。以下代码有效。问题是更新表格非常慢。我正在 NSlogging 请求响应(发生得非常快),我也在遍历每个列表并将列表
- (void)fetchImages { if (self.profileImages == nil) { self.profileImages = [[NSMutableD
我正在尝试添加一项功能以允许用户通过 Facebook/Twitter/Google+ 登录并在我的应用程序中发表评论。我还想显示其他评论用户的头像。 如果用户之前登录过 Twitter,我可以使用
我在 ios5 中使用 TWRequest,但 Leaks 报告了 TWRequest 的内存泄漏。 我正在做这样的事情,我哪里出错了吗? TWRequest *postRequest = [[TWR
我在使用 TWRequest API 发送推文回复时遇到问题。我能够成功发布新推文/状态,但回复失败并出现以下错误。请指教 我在回复帖子中收到的错误是: Error Domain=NSURLError
我想将用户的位置附加到 TWRequest。我试图修改 url(使用类似这样的内容:"http://api.twitter.com/1/statuses/update.json?lat=37.7689
如何使用 TWRequest 更改头像,我使用此代码发布到 timeLine -(IBAction)postToTwitter{ ACAccountStore *account = [[ACAccou
我只是好奇。 TWRequest 使用通用的 ACAccount,它被 iOS 上的所有应用共享。应用程序不指定自己的 consumer_key。那么 Twitter 如何知道特定 TWRequest
我有以下代码,它在执行请求时总是让我崩溃,知道吗? NSString *responseBody = [[NSString alloc] initWithData:data
我正在发布请求并检查错误,如下所示: // Send request out on a background thread dispatch_async(dispatch_get_global_que
我正在尝试使用 iOS 5 上的 Twitter 框架进行分享用户将选择要使用的帐户,因此该应用将使用所选帐户进行共享。 但是当 share 传递给 performRequestWithHandler
Instruments (Leaks) 在使用 TWRequest 时报告内存泄漏,我真的看不出我做错了什么。 以下是重现问题的步骤: 创建一个新的 Xcode 项目(禁用 ARC),添加 Twitt
如果 iOS 用户没有 Twitter 帐户,是否可以通过 TWRequest 为 API 使用仅应用程序身份验证,例如获取用户的时间线? (user_timeline.json)? 当 iOS 设备
我成功地发布了一条消息,并在结果 block 中成功地向 statuses/user_timeline.json 发出了请求,它返回了我最近的推文。问题是,我刚发的推文不在结果集中,只有较旧的推文。
我创建了下面的函数,但它似乎在 performRequestWithHandler 上泄漏。 - (void)getDataForRequest:(TWRequest *)postRequest wi
我正在尝试制作一个显示附近推文的基本 iPhone 应用程序。我使用 TWRequest 对象通过 Twitter 搜索 API 完成此操作。不幸的是,我实际上想使用他们的 GPS 坐标在 map 上
我正在使用以下代码使用 iOS 5 twitter API 在用户的时间线中发推文 //创建一个帐户存储对象。 ACAccountStore *accountStore = [[ACAccountSt
我可以像苹果示例一样使用 TWRequest 轻松发送推文, ACAccountStore *account = [[ACAccountStore alloc] init]; ACAccountT
-(void)getTwittersFollowers{ ACAccountStore *store=[[ACAccountStore alloc]init]; ACAccountType *twit
我正在开发支持iOS 5和6的iPhone应用程序。我想在twitter上分享图片,我发现的方法是使用iOS 5中引入的Twitter框架。 但是 TWRequest 在 iOS 6 中已被弃用,并被
我是一名优秀的程序员,十分优秀!