Swift 使用无主引用对结构数组进行迭代会无休止地进行

Swift 使用无主引用对结构数组进行迭代会无休止地进行,swift,Swift,在我的项目中,我有一个对类实例的无主引用的结构。尝试在这些结构的数组中循环会导致应用程序无休止地循环。但更疯狂的是,我可以循环通过键入到该结构的空数组,但它仍然会发生 在本例中,我使用了对NSString的引用来缩小示例,但使用自定义类没有帮助 同样值得注意的是,这种行为只发生在64位设备和模拟器上,而不是32位设备和模拟器上。我已经用Xcode 6.1、6.1.1和6.2进行了测试 struct TestStruct { unowned let reference: NSString

在我的项目中,我有一个对类实例的无主引用的结构。尝试在这些结构的数组中循环会导致应用程序无休止地循环。但更疯狂的是,我可以循环通过键入到该结构的空数组,但它仍然会发生

在本例中,我使用了对NSString的引用来缩小示例,但使用自定义类没有帮助

同样值得注意的是,这种行为只发生在64位设备和模拟器上,而不是32位设备和模拟器上。我已经用Xcode 6.1、6.1.1和6.2进行了测试

struct TestStruct {
    unowned let reference: NSString
}

let anArray: [TestStruct] = []

for anObject in anArray {
    NSLog("This is called endlessly")
}

我做错什么了吗?这是否一项受支持的安排?或者这只是我应该报告的一个swift错误?

正如评论所指出的,这似乎是swift编译器中的一个错误。通过报告它将帮助我们所有人。

显然是一个bug,你说呢?一个非常好的bug。很好的例子,很好的测试。不幸的是,我只能投票一次!您是否碰巧在您的机器上测试并发现问题?我已经重新安装了Xcode,自从我发现它以来,我已经重新启动了很多次,但我仍然有一点希望它是我的机器。你疯了吗?我不打算运行那个代码!我的电脑可能会爆炸。你已经毁了你的。哈哈,开玩笑而已。是的,我的结果和你的一致。这毫无意义。太好了,我的rdar://21126703