2016-04-14 103 views
0

我有一个接近工作的代码,但Xcode抱怨一行。由于我的项目中有一些其他代码,我不认为这很重要。UITableView未声明类型Cell?

我有这样一段代码:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! SpecialCell 
    let maindata = values[indexPath.row] 
    cell.username.text = maindata["Username"] as? String 
    cell.password.text = maindata["Password"] as? String 
    cell.num.text = maindata["FavoriteNumber"] as? String 
    cell.info.text = maindata["Info"] as? String 
    return cell; 
} 

我得到以下错误:“未申报类型‘SpecialCell’的使用”。 不幸的是,我不知道如何处理SpecialCell。我认为这只是我忘了的小事。我搜索了一个多小时,但我不明白。 如果我在提到的行中改变了某些内容,我所有的cell.username ....语句都变成了红色。

我所做的只是创建一个新的表视图并将其链接到我的代码。所以我得到这个

@IBOutlet weak var tableView: UITableView! 

我必须改变或设置一个标识符或类似的东西吗? 这个项目的想法是,用JSON解析数据并将其写入此表。解析代码是这样的:

func parseJson() { 
    let url = NSURL(string: "http://an_url.com") 
    let data = NSData(contentsOfURL: url!) 
    values = try! NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSArray 
    tableView.reloadData() 
} 

但是我觉得在这里这个专题没关系。 如果您对我有一些提示,那将会很棒。

+0

更改它与UITableViewCell,让我知道它是否工作 –

+0

谢谢。我之前尝试过,因为代码完成建议这样做。效果也是,我所有的cell.username ...语句都变红了。 – plategt

+0

这可能是因为你有一个自定义单元,有一个自定义类,但是你没有在XCode IDE中给它一个合适的名字:在你的故事板中选择你的单元格,打开属性检查器并设置标识符(移除“单元格”和把SpecialCell) –

回答

0

可以声明一个自定义单元格这样

self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "SpecialCell") 

或者

self.tableView.registerClass(SpecialCell.classForCoder(), forCellReuseIdentifier: "SpecialCell") 

如果它是一个自定义单元格。告诉我们关于这个SpecialCell的更多信息

0

感谢您的提示。 随着我进一步了解,我认识到,正如Andrew McKinley所说,SpecialCell是定制单元的定义。解决方案是创建一个SpecialCell类并定义其中的单元格。 有一次,我已经做到了这一点,我坚持另一点。但那是另一个话题。

再次感谢。