gpt4 book ai didi

ios - 在代码块中设置 UILabel 文本

转载 作者:行者123 更新时间:2023-12-01 17:40:22 25 4
gpt4 key购买 nike

我的 NSURLConnection sendAsynchronousRequest 有一个代码块,当我尝试设置 UILabel 的文本时,即使值在那里,也不会设置文本。这是我的代码:

    NSString *address = [addresses objectAtIndex:indexPath.row];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://myurl.com/%@", address]]];
[NSURLConnection sendAsynchronousRequest:urlRequest queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if ([data length] > 0 && error == nil)
{
NSString *dataOfData = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
if(![dataOfData isEqualToString:@"ERROR: address invalid"]) {
[balanceLabel setText:[NSString stringWithFormat:@"Balance: %@", dataOfData]];
if(data) {
qrCodeButton.alpha = 1;
}
} else {
errorLabel.text = @"This address is invalid.";
}
}
else if ([data length] == 0 && error == nil)
{
NSLog(@"Nothing was downloaded.");
[balanceLabel setText:@"Server Error, Please Try Again"];
}
else if (error != nil){
NSLog(@"Error = %@", error);
}
}];

为什么 UILabel 的文本从未设置?代码块有限制吗?如果是这样,我将如何解决我的问题?干杯!

最佳答案

这是因为 NSOperationQueue 不是主线程。你在做什么是非法的。可悲的是,没有必要!说啊:

[NSURLConnection sendAsynchronousRequest:urlRequest 
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
// ... and the rest exactly as you have it now

都修好了。您的请求在后台线程上是异步的,但是当它在完成处理程序上返回给您时,您将在主线程上并能够与界面等对话。

关于ios - 在代码块中设置 UILabel 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21769545/

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