协议中的 Swift 元组声明

施密特

我的代码中有一个元组变量,它来自 ReactiveSwift:

class MyClass {
   var (signal, signalSender) = Signal<Bool, Error>.pipe()
}

如何在协议中声明该变量元组?

类似这样(不起作用):

protocol MyProtocol {
   var (signal, signalSender): Signal<Bool, Error> { get set }
}

出现语法错误:“Getter/setter can only be defined for a single variable”

谢谢!

罗伯特·德雷斯勒

您的属性类型应该是元组,而不仅仅是某些类/结构的声明。所以,看看你的pipe()回报。它应该返回两种类型的元组

func pipe() -> (Type1, Type2) { ... }

协议声明使用这两种类型

protocol MyProtocol {
    var tuple: (signal: Type1, signalSender: Type2) { get set }
}

然后将此协议实现到您的类并为其分配返回值 pipe()

class MyClass: MyProtocol {
    var tuple: (signal: Type1, signalSender: Type2) = Signal<Bool, Error>.pipe() 
}

然后当你需要获取元组元素时,只需使用

tuple.signal
tuple.signalSender

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章