gpt4 book ai didi

ios - UICollectionView 在调用 reloadData 时不会立即更新,而是在 30-60 秒后随机更新

转载 作者:IT王子 更新时间:2023-10-29 08:13:14 24 4
gpt4 key购买 nike

如标题所示,我的 UICollectionView 不会在调用 reloadData 后立即更新和显示单元格。相反,它似乎最终会在 30-60 秒后更新我的收藏 View 。我的设置如下:

UICollectionView 添加到 Storyboard 中的 View Controller ,同时为 View Controller 和标准 socket 设置设置了 delegatedataSourcenumberOfSectionsInRowcellForItemAtIndexPath 均已实现并引用原型(prototype)单元格及其内部的 imageView

这是转到 Twitter 的代码,获取时间线,将其分配给变量,重新加载包含推文的 TableView ,然后遍历推文以查找照片并重新加载包含这些项目的 Collection View 。

即使我注释掉显示图像的代码,它仍然没有任何改变。

SLRequest *timelineRequest = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:timelineURL parameters:timelineParams];
[timelineRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
if(responseData) {
JSONDecoder *decoder = [[JSONDecoder alloc] init];

NSArray *timeline = [decoder objectWithData:responseData];

[self setTwitterTableData:timeline];

for(NSDictionary *tweet in [self twitterTableData]) {
if(![tweet valueForKeyPath:@"entities.media"]) { continue; }

for(NSDictionary *photo in [[tweet objectForKey:@"entities"] objectForKey:@"media"]) {
[[self photoStreamArray] addObject:[NSDictionary dictionaryWithObjectsAndKeys:
[photo objectForKey:@"media_url"], @"url",
[NSValue valueWithCGSize:CGSizeMake([[photo valueForKeyPath:@"sizes.large.w"] floatValue], [[photo valueForKeyPath:@"sizes.large.h"] floatValue])], @"size"
, nil]];
}
}

[[self photoStreamCollectionView] reloadData];
}
}];

最佳答案

这是从后台线程调用 UIKit 方法的典型症状。如果您查看 -[SLRequest performRequestWithHandler:] documentation ,它表示处理程序不保证它将在哪个线程上运行。

将对 reloadData 的调用包装在一个 block 中,并将其传递给 dispatch_async();还将 dispatch_get_main_queue() 作为队列参数传递。

关于ios - UICollectionView 在调用 reloadData 时不会立即更新,而是在 30-60 秒后随机更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14804359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com