下面是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)