【问题标题】:Swift 3.0 NSArray valueForKeySwift 3.0 NSArray valueForKey
【发布时间】:2016-09-08 22:39:54
【问题描述】:

在 Swift 2.3 中我使用了这段代码,但是在将 Swift 更新到 3.0 版后,我的代码无法编译。谢谢!

var waterfallLibrary: NSArray = []
cell!.textLabel?.text = String(self.waterfallLibrary.valueForKey("songName").objectAtIndex(indexPath.row))

【问题讨论】:

  • 你得到什么错误信息?
  • value(forKey: "songName")
  • (waterfallLibrary.value(forKey: "songName") as! NSArray).object(at: indexPath.row)

标签: swift nsarray swift3


【解决方案1】:

这段代码解决了我的问题

(waterfallLibrary.value(forKey: "songName") as! NSArray).object(at: indexPath.row)

谢谢里奥·达布斯!

【讨论】:

  • 大声笑。所以我当时给出的答案。为什么要将我的答案复制到您自己的答案中?
  • 您原来的答案是错误的。 valueForKey(key: blah)
  • 顺便说一句,您的答案仍然错误。编辑后,您正在传递一个 Int 而不是 String 。
【解决方案2】:

在 swift 3.0 中,第一个参数名称是必需的。所以你的代码应该是...

value(forKey: indexPath.row)

如果您阅读错误消息,它会告诉您这一点,甚至会为您更正。

如果您想转换所有代码,只需使用内置的 xcode 转换器即可为您完成所有这些工作。同样,这将在您在 Xcode 8 中打开项目时提供。

【讨论】:

  • 我知道,但我需要额外使用 indexPath.row
  • @DmitriyGroschovskiy 不知道为什么这是个问题?把indexPath.row放在我放废话的地方。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多