iOS 开发 UIActivityIndicatorView 子线程崩溃解决方法 - GCD 和 performSelectorOnMainThread
在 iOS 开发中,UIActivityIndicatorView 是属于 UIKit 框架的控件,因此所有与 UI 控件相关的操作都必须在主线程中执行。如果在子线程中对 UIActivityIndicatorView 进行操作,会导致应用崩溃。\n\n要解决这个问题,可以使用 GCD(Grand Central Dispatch)将对 UIActivityIndicatorView 的操作切换到主线程中执行。下面是一个示例代码:\n\nobjective-c\ndispatch_async(dispatch_get_main_queue(), ^{\n // 在主线程中执行 UIActivityIndicatorView 相关操作\n [activityIndicatorView startAnimating];\n});\n\n\n在上述示例代码中,dispatch_async 函数用于将 UIActivityIndicatorView 相关操作切换到主线程中执行。这样做可以避免在子线程中操作 UI 控件导致的崩溃问题。\n\n另外,还可以使用 performSelectorOnMainThread 方法将对 UIActivityIndicatorView 的操作切换到主线程中执行。示例代码如下:\n\nobjective-c\n[self performSelectorOnMainThread:@selector(startAnimatingActivityIndicator) withObject:nil waitUntilDone:NO];\n\n- (void)startAnimatingActivityIndicator {\n [activityIndicatorView startAnimating];\n}\n\n\n在上述示例代码中,performSelectorOnMainThread 方法用于将 startAnimatingActivityIndicator 方法切换到主线程中执行。这样做同样可以避免在子线程中操作 UI 控件导致的崩溃问题。
原文地址: https://www.cveoy.top/t/topic/p2BG 著作权归作者所有。请勿转载和采集!