for语句(swift)中的奇怪行为



我正在使用swift开发一个应用程序。今天我更新了我的Xcode(版本7),我得到了很多相同的警告。

问题在for语句

代码如下:

    let dict:NSDictionary
    for dict in offers_to_show{
        //do something
    }
  • offers_to_show是一个NSArray,它只包含NSDictionary

我得到"不可变值'dict'从未使用过;考虑用'_'代替或删除它。我怎么解它?

感谢您的支持,Mirco

当您将绑定变量命名为dict时,您就遮蔽了本地变量dict(您从未使用过它)。Swift告诉你删除不必要的(和令人困惑的)let dict:NSDictionary行。

我得到"不可变值'dict'从未使用过

这是因为有两个dict变量:在第一行创建的常量变量,以及在for循环中的变量。如文档中所述,for-in循环中的索引变量是隐式声明的——您不需要像在let dict...行中那样自己声明它,而且,它实际上是不同作用域中的单独变量。

您没有使用第一个,所以编译器会指出这一点。您的代码没有任何变化——编译器只是在查找未使用代码方面做得更好了。

最新更新