gpt4 book ai didi

objective-c - 调用 hide 后 MBProgressHUD 没有消失

转载 作者:可可西里 更新时间:2023-11-01 05:01:25 31 4
gpt4 key购买 nike

我确定这是我的 iOS/ObjC 菜鸟问题...

我有一个包含条目的 UITableView,当用户选择一行时,

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
...
[self.twitter sendUpdate:[self getTweet]];

- (NSString *)sendUpdate:(NSString *)text;
{
NSLog(@"showing HUD");
self.progressSheet = [MBProgressHUD showHUDAddedTo:[[UIApplication sharedApplication] keyWindow] animated:YES];
self.progressSheet.labelText = @"Working:";
self.progressSheet.detailsLabelText = text;

// Build a twitter request
TWRequest *postRequest = [[TWRequest alloc] initWithURL:
[NSURL URLWithString:@"http://api.twitter.com/1/statuses/update.json"]
parameters:[NSDictionary dictionaryWithObject:text
forKey:@"status"] requestMethod:TWRequestMethodPOST];

// Post the request
[postRequest setAccount:self.twitterAccount];

// Block handler to manage the response
[postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error)
{
NSLog(@"Twitter response, HTTP response: %i", [urlResponse statusCode]);

NSLog(@"hiding HUD");
[MBProgressHUD hideHUDForView:[[UIApplication sharedApplication] keyWindow] animated:YES];
self.progressSheet = nil;

它调用内置的 Twitter api 来发送推文。我正在使用 MBProgressHUD在发送过程中。我的 HUD 消失时出现不稳定的行为,通常它会比应有的时间长 10 秒左右。基于我看到的显示/隐藏日志记录。

我有另一个更简单的 View ,它只列出推文并且使用 HUD 没有问题 - 尽管它是通过 viewWillAppear 调用完成的。

也许我需要通过另一个线程进行展示?

提前感谢您的任何想法 ~chris

最佳答案

是的,关于 ui 线程你是对的。你也可以这样写:

dispatch_async(dispatch_get_main_queue(), ^{
[self.progressSheet hide:YES];
self.progressSheet = nil;
});

关于objective-c - 调用 hide 后 MBProgressHUD 没有消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9239127/

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