在 iOS 开发中,UIActivityIndicatorView 是 UI 控件,需要在主线程中进行操作。如果在子线程中操作 UIActivityIndicatorView,会导致崩溃。

解决方法是在子线程中使用 GCD(Grand Central Dispatch)将 UI 操作切换到主线程中执行。以下是一个示例代码:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    // 在子线程中进行耗时操作
    
    dispatch_async(dispatch_get_main_queue(), ^{
        // 在主线程中更新 UI
        
        UIActivityIndicatorView *activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
        [activityIndicatorView startAnimating];
        [self.view addSubview:activityIndicatorView];
        
        // 在主线程中进行其他 UI 操作
        
        [activityIndicatorView stopAnimating];
        [activityIndicatorView removeFromSuperview];
    });
});

在上述代码中,使用 dispatch_async 将耗时操作放在子线程中执行,然后使用 dispatch_async 将 UI 操作切换到主线程中执行。这样能够避免在子线程中操作 UIActivityIndicatorView 导致的崩溃问题

iOS 开发 UIActivityIndicatorView 在子线程崩溃 oc代码

原文地址: https://www.cveoy.top/t/topic/ikAX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录