在数小时试图寻找答案后,我正式被难住了。
我有一个字符串数组:
let artists = ["Robben Ford", "Joe Bonamassa", "Eric Clapton", "Matt Schofield"]
现在,我想迭代该数组,如下所示:
func refresh() {
for artist in artists {
let indexPath = NSIndexPath(forItem: artist, inSection: 0) <---- Error
if let cell = tableView.cellForRowAtIndexPath(indexPath) {
cell.textLabel?.text = artist
}
}
Xcode在let indexPath语句中抱怨,“无法将“String”类型的值转换为预期的参数类型“Int”。我知道它期望forItem是一个Int,但我不知道如何使其成为一个Int。
我尝试将for循环更改为
for artist in artists.enumerate() {
}
但随后它只是说它不能convert '(index:Int,element: String)”。
对一个非初学者来说,这个解决方案肯定是显而易见的,但对我来说却不是显而易见的。
提前谢谢。
初学者的解决方法很简单:
for artist in artists.enumerate() {
let indexPath = NSIndexPath(forItem: artist.index, inSection: 0)
if let cell = tableView.cellForRowAtIndexPath(indexPath) {
cell.textLabel?.text = artist.element
}
}
问题是,您试图将一个“artist”< code > String 传递给< code>NSIndexPath(forItem: Int,inSection: Int)初始化器的< code>forItem参数。如您所见,它需要2个< code>Int参数。所以@ a host的回答是正确的,你只是错过了他的最后一句话。
它不起作用,因为您传入的是字符串,而不是字符串的索引。尝试
for (index, artist) in artists.enumerate()
,然后传入索引。
我在玩代码。我在GitHub上找到的(https://github.com/avijeets/ConnectFour)被一个我无法清除的错误彻底难住了。 错误是: "无法将“[[CFCellState]]”类型的值转换为预期的参数类型“Int”" VC顶部的代码,其中定义了: 发生错误的代码:
我是斯威夫特的新人,现在尽我所能地学习这个。我写了得到参数的函数:数字和函数,它们与这个数字一起工作: 但是编译给出错误。当我试图改变论点时,比如
我不知道如何将类型的值转换为预期的参数类型,用于在以下代码中: 如何为编写
我正在保存所有数据,代码写在单独的类中。它显示了一个错误,即无法将类型为“Int”的值转换为预期的参数类型“字符串”。请帮我解决这个问题。 以下是我保存所有数据的类: 这是ViewController.swift文件: 遇到错误: 无法将“Int”类型的值转换为预期的参数类型“String”
我是SwiftUI的新来者。现在我需要使用@绑定var电影:与列表页面绑定的编辑视图中的电影,但是当我将其应用于下面的代码时,错误刚刚发生。 无法将“Binding”类型的值转换为预期的参数类型“Int” 那我该怎么处理这个案子,期待你的帮助。 顺便问一下,我如何在“progress”中使用绑定类型,如:它还报告Err,无法将类型“Int”的值转换为预期的参数类型“Binding” 我有另一个问题
我得到错误“无法将类型‘Int’的值转换为预期的参数类型‘Dictionary’。第8行的索引' '