gpt4 book ai didi

iphone - 异步函数执行?

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

在我的 iOS 应用程序中,我执行以下操作。

viewDidAppear(){

// Load a spinner in a view on the top
[DSBezelActivityView newActivityViewForView:self.view];
// Execute code that require 3 seconds
...
// Stop the spinner
[DSBezelActivityView removeViewAnimated:YES];
}

问题是微调器没有出现,因为 cpu 正在努力工作(类似的东西)。这就像开始和停止之间的代码优先于 View 的呈现。

我很想找到一种方法来有效地显示微调器的启动,而无需使用计时器来延迟代码执行。

谢谢

最佳答案

如果你有这样的方法

-(void) showSpinner:(UIView*)view {
dispatch_async(dispatch_get_main_queue(), ^{
[DSBezelActivityView newActivityViewForView:view];
});
}

有几种方法可以从不同的线程调用它。从以下选项中选择一项:

[NSThread detachNewThreadSelector:@selector(showSpinner:) toTarget:self withObject:self.view];
// or
[self performSelectorInBackground:@selector(showSpinner:) withObject:self.view];
// or
NSInvocationOperation *invOperation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(showSpinner:) object:self.view];
NSOperationQueue *opQueue = [[NSOperationQueue alloc] init];
[opQueue addOperation:invOperation];
// or
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self showSpinner:self.view];
});

Alt + 单击以获取详细信息。

关于iphone - 异步函数执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6225532/

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