突然在Swift XCode beta 6中获得编译器崩溃"arrayForceCast"

Ale*_*yne 34 swift

升级到xcode beta 6之后,编译突然在我身上爆炸.我没有得到任何类型的内联消息,只是在构建日志中出现此错误.

Undefined symbols for architecture i386:
  "__TFSs15_arrayForceCastU___FGSaQ__GSaQ0__", referenced from:
      __TFC9MyProj6NavBar5stackfS0_FCSo20CDVInvokedUrlCommandT_ in NavBar.o
Run Code Online (Sandbox Code Playgroud)

我设法将其追溯到这行代码,这在beta 5上运行良好.

// A dictionary of String keys and arrays of NavBarItem instances as values.
var stacks: [String:[NavBarItem]] = [:]

func stack(cmd: CDVInvokedUrlCommand) {
    let stackName: String = cmd.arguments[0] as String

    if let stack = stacks[stackName] {

        // When I comment this line out I get a clean compile.
        navBar.setItems(stack, animated: false)

    }
}
Run Code Online (Sandbox Code Playgroud)

我唯一的猜测是它不喜欢从快速阵列转换为NSArray某种方式.有任何想法吗?

Pau*_*anu 63

即使使用新版本的Beta6,我发现了这个错误.

Beta 6有一些重大变化,看起来Xcode越来越混乱.完全清洁也无效.

我通过删除Derived文件夹的内容解决了这个和其他类似的难以辨认的错误.您可以转到"首选项">"位置"找到该文件夹​​的位置.

默认路径为:/ Users/[您的用户名]/Library/Developer/Xcode/DerivedData

  • 您还可以直接从管理器中清除派生数据:为每个项目选择"项目"选项卡,在"派生数据"部分中有一个方便的"删除"按钮.这为我解决了这个问题,而不需要手动在图书馆里挖掘. (17认同)
  • 您还可以使用"清理构建文件夹"菜单选项来删除派生数据.默认情况下它不在菜单中,但它是CMD + OPT + SHIFT + K(或者只是在帮助菜单中键入clean) (6认同)

Raw*_*ean 5

启动管理器,然后单击"删除"按钮,如下所示.重建和错误将消失.

在此输入图像描述