Skip to content

swift6.0 编译错误 #50

Description

@Dec22gln

在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) {
    // 现有代码保持不变
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions