1

这是 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 ';'错误消息。所以,这不是一个解决方案。

有谁知道消除错误的解决方法?

这发生在今天(真正)发布的 XCode 6 Beta 6 之后。

4

1 回答 1

1

这已在 Dollar 项目中得到解决。但是对于在另一个项目中遇到这个问题的人来说,解决它的方法是对函数本身执行 unsafeBitCast ,这样可以解决编译问题。

typealias Function = [T] -> E
let f = unsafeBitCast(function, Function.self)
f(params)
于 2014-08-20T13:18:11.333 回答