下面是Swift的Dollar框架中的一个函数:

public class func bind<T, E>(function: (T...) -> E, _ parameters: T...) -> (() -> E) {
    return { () -> E in
        typealias TType = (T...)
        return function(unsafeBitCast(parameters, TType.self))
    }
}

typealias行中,我得到Cannot create a variadic tuple错误。当我移除T...周围的支架时,我会收到Consecutive statements on a line must be separated by ';'错误。所以,这不是解决办法。
有人知道如何解决这个错误吗?
这发生在xcode6beta6今天发布之后。

最佳答案

现在美元项目已经解决了这个问题。但是对于在另一个项目中遇到这个问题的人来说,解决这个问题的方法是对函数本身进行不安全的转换,这样就可以解决编译问题。

typealias Function = [T] -> E
let f = unsafeBitCast(function, Function.self)
f(params)

09-10 11:16
查看更多