ios 属性中函数类型的可发送性与协议中的要求不匹配

q35jwt9p  于 2023-05-19  发布在  iOS
关注(0)|答案(1)|浏览(123)

我试图添加一个具有进程的所有属性和功能的协议,但我看到terminationHandler的警告。
我希望不要看到这个警告,因为@Sendable已经添加到terminationHandler

protocol ProcessProtocol {
    var executableURL: URL? { get set }
    var arguments: [String]? { get set }
    var environment: [String : String]? { get set }
    var currentDirectoryURL: URL? { get set }
    var standardInput: Any? { get set }
    var standardOutput: Any? { get set }
    var standardError: Any? { get set }
    func run() throws
    func interrupt()
    func terminate()
    func suspend() -> Bool
    func resume() -> Bool
    var processIdentifier: Int32 { get }
    var isRunning: Bool { get }
    var terminationStatus: Int32 { get }
    var terminationReason: Process.TerminationReason { get }
    var terminationHandler: (@Sendable (Process) -> Void)? { get set }
    var qualityOfService: QualityOfService { get set }
}

extension Process: ProcessProtocol {}
jyztefdp

jyztefdp1#

这确实有点奇怪,因为您的协议签名与开发人员文档中为Process - terminationHandler显示的签名完全匹配。删除@Sendable符号实际上解决了警告,不知道为什么。我会向苹果提交一份关于这个问题的bug报告。

相关问题