在Swift 6.0中,UIKit的许多属性都被正式标记为@mainactor隔离,包括UIView.layer属性。这意味着编译器现在会更严格地检查这些属性的访问是否在主线程上下文中。
报错信息:
**/Pods/LookinServer/Src/Swift/LKS_SwiftTraceManager.swift:50:46 Main actor-isolated property 'layer' can not be referenced from a nonisolated context
错误发生在:
LKS_SwiftTraceManager的swiftMarkIVars方法。
ivarLayer = view.layer 这一行报错。
解决办法:
最简单的方法是在swiftMarkIVars方法上添加@mainactor标记。
@objc @MainActor public static func swiftMarkIVars(ofObject hostObject: AnyObject) {
// 现有代码保持不变
}
在Swift 6.0中,UIKit的许多属性都被正式标记为@mainactor隔离,包括UIView.layer属性。这意味着编译器现在会更严格地检查这些属性的访问是否在主线程上下文中。
报错信息:
错误发生在:
LKS_SwiftTraceManager的swiftMarkIVars方法。
ivarLayer = view.layer 这一行报错。
解决办法:
最简单的方法是在swiftMarkIVars方法上添加@mainactor标记。