【问题标题】:Cannot assign a value of type 'String' to a value of type 'String' in Xcode7无法在 Xcode7 中将“String”类型的值分配给“String”类型的值
【发布时间】:2015-06-11 00:27:55
【问题描述】:

我刚刚升级到 Swift 2.0 和 Xcode 7 Beta,我收到了错误:

无法将“String”类型的值分配给“String”类型的值

写作时:

 var string = (change[NSKeyValueChangeNewKey]) as! String?

【问题讨论】:

  • 我会归档雷达。 as! 中的砰砰声似乎是必要的,因为您正在强迫沮丧。但您还希望包含 ? 以表明它是一个 可能没有值的 String 类型。 这与 (1) 始终有值的 String 不同,以及来自 (2) 的泛型类型 (AnyObject)。我认为String? 是一个非常独特的第三个选项。
  • Swift 的错误代码有时非常非常糟糕。将错误消息视为编译器说“Duh ...我不明白!”并从那里开始。 Patricks 关于可选绑定的建议值得一试。

标签: swift xcode7


【解决方案1】:

我认为as! String? 部分是问题所在。

你应该这样做:

if let string = change[NSKeyValueChangeNewKey] as? String {
    // Do something with `string`
}

【讨论】:

    猜你喜欢
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    相关资源
    最近更新 更多