2016-11-22 84 views
0
let cell = UITableViewCell() 
    let dic = dict as Dictionary 
    let z = "Period \(String(Int(indexPath.row + 1)))" // something wrong with this 
    let x: Array = dic[z] as! Array 
    if (x[0] is String) { 
     cell.textLabel?.text = x[0] as? String 
    } else { 
     print("Error: it isnt a string") 
    } 

    tableView.reloadData() 
    return cell 

这有什么问题我觉得它是简单的东西,但我只是不能看到它,如果你能看到你能帮我!谢谢。编译时间错误

当我运行这个我得到一个分段错误,我已经缩小到这个代码。再次请帮助。 ; - ;

+0

使用调试器并将问题缩小到确切的一行。 – rmaddy

+0

你的标题中提到的编译时错误是什么?你的问题的主体似乎是关于运行时错误。 – rmaddy

+0

@rmaddy我已经完成了我下面的那个人告诉我要做的事情,然后它会在x:Array = dic [z]这行上写上“成员'下标'的歧义引用'”!阵列 – KyleThe1st

回答

0

行更改为:

let z = "Period \(indexPath.row + 1)" 

你并不需要所有的类型转换。 IndexPath.row已经是Int,并且不需要从Int创建String

您还有其他一些严重问题。假设这个代码在你的cellForRowAt方法中,从来没有在那里调用reloadData()。只要返回一个单元格。不要在该方法中对桌子做任何其他事情。

您还应该正确地从tableview中取出一个单元格。它会使你的表格视图更有效率。

+0

我该如何取出细胞?我还编辑了铸件,它仍然给我一个错误。 – KyleThe1st

+0

好吧我做了你所说的,现在它说:“模糊引用成员下标''就行了让x:Array = dic [z] as!数组和编译错误消失了。 – KyleThe1st

+0

您应该将'dic'声明为特定类型的字典。 – rmaddy