相关疑难解决方法(0)

Swift:捕获逃脱被调用函数的闭包中的inout参数

我试着编写一个"编辑器"类,它可以保留对不同对象上的属性的引用,以便以后进行突变.我首先编写了编辑器类来接收一个用于读取的闭包,以及一个用于写入的闭包.这很有效.然后我尝试通过(inout)引用传递有问题的参数,然后从中生成getter/setter对.这没用.Swift文档确实说(释义)Swift确定何时复制,何时不复制.我认为我反对这种限制的不可预测性,但我认为我提出的问题是一样的.

或者,是否可以为个人吸气剂和定位器获得咖喱功能?

我的代码是:

class SomeModel : Printable {

    var a:String

    init(a:String) {
        self.a = a
    }

    var description:String {
        return "\(self.a)"
    }
}


class Editor {

    var getter:()-> String
    var setter:(String)->()

    init(getter:()-> String, setter:(String)->()) {
        self.getter = getter
        self.setter = setter
    }

    convenience init(inout bindTo:String) {
        self.init(
            getter:{ return bindTo },
            setter: { v in bindTo = v })
    }

    func read() -> String {
        return self.getter()
    }

    func write(value:String) {
        self.setter(value)
    }
}


func testBindTo() {
    var readModel = …
Run Code Online (Sandbox Code Playgroud)

macos ios swift

4
推荐指数
1
解决办法
4030
查看次数

标签 统计

ios ×1

macos ×1

swift ×1