经过几个小时的努力寻找答案,我才被正式难倒。
我有一个字符串数组:
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,但我无法弄清楚如何使它成为一个。
我确实尝试将for循环更改为
for artist in artists.enumerate() {
}
然后它只是说它不能隐蔽'(index:Int,element:String)'。
对于非初学者来说,修复必须是显而易见的,但这对我来说并不明显。
提前致谢。
答案 0 :(得分:3)
它不起作用,因为您传入的是字符串,而不是字符串的索引。试试
for (index, artist) in artists.enumerate()
然后传入索引。
答案 1 :(得分:0)
初学者的修复只是:
for artist in artists.enumerate() {
let indexPath = NSIndexPath(forItem: artist.index, inSection: 0)
if let cell = tableView.cellForRowAtIndexPath(indexPath) {
cell.textLabel?.text = artist.element
}
}
问题在于,您正试图通过一位&#34;艺术家&#34; String
forItem
初始化程序的NSIndexPath(forItem: Int, inSection: Int)
参数Int
。如您所见,它需要2 setInterval(move, 1000);
var left=0;
function move() {
$("div").css("left", left);
left=left+20;
}
个参数。所以@Ahaubster的回答是正确的,你只是错过了他的最后一句话。