【问题标题】:'Cannot create a variadic tuple' error“无法创建可变元组”错误
【发布时间】:2014-08-19 10:41:44
【问题描述】:

这是来自Dollar Swift 框架的一个函数:

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 之后。

【问题讨论】:

    标签: swift xcode6-beta6 dollar.swift


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-06-09
      • 2012-10-04
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 1970-01-01
      • 2018-08-16
      相关资源
      最近更新 更多