gpt4 book ai didi

ios - 更新 View iOS

转载 作者:行者123 更新时间:2023-11-29 03:16:49 24 4
gpt4 key购买 nike

我正在编写一个 iOS 应用程序,它在 NSOperation 中监听套接字。当在套接字上读取某些内容时,我通过调用 UIViewController 的方法更改 View 的内容(只需更改某些标签的隐藏参数)。问题是 View 不会立即刷新。为什么会这样,我该如何解决这个问题?

在我的 UIViewController 的 viewDidLoad 中:

_broadcastQueue = [[NSOperationQueue alloc] init];
_broadcastQueue.name = @"broadcastPairing";
PairingDevice *broadcast = [[PairingDevice alloc] initWithCode:_code andDelegate:self];
[_broadcastQueue addOperation:broadcast];

当监听器接收到数据时,我调用:

[self.delegate setClientConnectedWithSocket:sockTCP andIP:[NSString stringWithUTF8String:inet_ntoa(sin.sin_addr)] andHostname:[NSString stringWithUTF8String:data.machineName]];

在我的 UIViewController 的方法中(目前):

    _codeLabel.hidden = YES;
_infoText.hidden = YES;

_hostLabel.hidden = NO;
_ipLabel.hidden = NO;
_ipLabel.text = ip;
_hostLabel.text = hostname;

最佳答案

确保您在应用程序的主线程上执行该代码。
这只是一个假设,但我猜您的网络调用是在后台线程中执行的(正如预期的那样),因此您需要在主线程内执行所有 yout UI 操作:

dispatch_async(dispatch_get_main_queue(), ^{
// Your UI code
});

关于ios - 更新 View iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21598820/

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