gpt4 book ai didi

ios - 为什么使用 __block 标识符设置属性时应用程序会崩溃

转载 作者:行者123 更新时间:2023-12-02 03:51:28 26 4
gpt4 key购买 nike

我尝试使用此代码设置 UITextView 的文本属性,但出现崩溃,提示我无法从主线程执行此操作:

__block NSString *stringForText;

self.uploadTask = [upLoadSession uploadTaskWithRequest:request fromData:body completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
// ...
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*) response;
int errorCode = httpResponse.statusCode;
NSString *errorStatus = [NSString stringWithFormat:@"%d",errorCode];

NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSString *totalResponse = [errorStatus stringByAppendingString:responseString];

stringForText = totalResponse;
[self updateView:stringForText];

// 4
self.uploadView.hidden = NO;
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
}];


// 5
[_uploadTask resume];
}

-(void)updateView:(NSString*)texto{
self.myTextView.text = texto;
}

为什么它崩溃说我无法从 TestFlight 中的主线程调用它?

最佳答案

再次检查。您必须从主线程更新UI。您的上传完成处理程序可能是在主线程之外运行的。如果您想从任何线程调用 updateView:,那么您可以将标签的操作分派(dispatch)到主线程:

-(void)updateView:(NSString*)texto{
dispatch_async(dispatch_get_main_queue(), ^{
self.myTextView.text = texto;
});
}

关于ios - 为什么使用 __block 标识符设置属性时应用程序会崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25110845/

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