Swift Xcode 7-引用XUIElement的奇怪强制转换错误

Swift Xcode 7-引用XUIElement的奇怪强制转换错误,swift,swift2,xcode7,Swift,Swift2,Xcode7,我已经将代码更新为XCode 7和Swift 2.0,现在我的一些测试失败了,我在测试构建中看到了40条警告,这些警告与它们引用的代码完全无关。 警告信息是: "Cast From 'XCUIElement' to unrelated type 'String' always fails" 这是一个产生警告的行的示例: if let protocolStr = JSON["version"] as? String{ 我还没有使用XC用户界面测试。。。所以我无法理解为什么这段代码引用了那个类

我已经将代码更新为XCode 7和Swift 2.0,现在我的一些测试失败了,我在测试构建中看到了40条警告,这些警告与它们引用的代码完全无关。 警告信息是:

"Cast From 'XCUIElement' to unrelated type 'String' always fails" 
这是一个产生警告的行的示例:

if let protocolStr = JSON["version"] as? String{
我还没有使用XC用户界面测试。。。所以我无法理解为什么这段代码引用了那个类。有什么想法吗

更新:11月9日
对于XCode 7.1,问题仍然存在

我想你已经解决了你的问题,但万一有人看到这个:

问题是JSON属于我猜的AnyObject类型,因为它不知道可以将其作为字典索引。如果您将其强制转换为[String:AnyObject],则不会出现错误。(就像你注意到的)

编辑:至于为什么它会给你这个错误,我不确定。可能是个bug。

使用Xcode 7.1.1 未修复,但此解决方案帮助了我:

if let protocolStr = JSON["version"] as AnyObject as! String {

我所要做的就是将键字符串(“version”)键入
NSString
,如下所示:

if let protocolStr = JSON["version" as NSString] as? String {
    …
}

Xcode 7.2,swift 2.2

像这样试试

if let protocolStr = JSON.valueForKey("version") as? String{
     //your code
}

我遇到了这个问题,我会看看我能找到什么。为了“修复”它,我用[String:AnyObject]替换了AnyObject类型。此强制转换不仅仅适用于测试目标。应用程序目标毫无问题地接受此强制转换。不,它不起作用。问题仍然存在,我们不必找到解决办法,苹果必须修复这个漏洞。嗯,也许这是我的情况。MatterGoal我同意你的看法,但苹果通常不会给出你认为他们必须做的事情。我已经有一年多的错误报告了,他们甚至都没有承认。我们遇到了相同的问题(Xcode 7.2),您的解决方法实际上也适用于我们!但我无法解释为什么。你用这种方式强制转换的理由是什么?我怀疑这与UI测试模块有关,因为这只在编写单元测试时才出现问题。我猜在
AnyObject
的某个地方有一个扩展来添加订阅,该订阅返回一个xguielement,以方便编写UI测试。类似的东西会泄漏到任何对象中…您不能再像这样转换为NSString了