2016-05-12 16 views
0

tableviewは、データソース識別子に応じて異なるUITableViewCell'sを表示したいと考えています。ここで実行時に変数タイプを変更する方法

は私のコードです:もちろん

func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! { 

    var cell : AnyObject 

    var itemDic = items.objectAtIndex(indexPath.row) as! [String : String]; 

    switch itemDic["celltype"]! as String { 
    case "dash": 

     cell = tblGraphs.dequeueReusableCellWithIdentifier("DashboardCell") as! DashboardTableViewCell 
     cell.setData(itemDic, indexPath: indexPath) 
    case "chart": 

    cell = tblGraphs.dequeueReusableCellWithIdentifier("ChartCell") as! ChartTableViewCell 

    default: 

     cell = tblGraphs.dequeueReusableCellWithIdentifier("DashboardCell") as! DashboardTableViewCell 

    } 


    return cell 
} 

は私にエラーを与えている:

enter image description here

これを解決する方法上の任意の手掛かりを?

+1

私は何か不足しているかもしれませんが、代わりに 'var cell:UITableViewCell'だけではないのですか? – Amadan

答えて

0

それ以外の場合は、あなたがUITableViewCellの

0

を返すようにしようとしている実際にあなたがタイプANYOBJECT型のセル変数を運ばれたが、ことをしていることを知らない

var cell : UITableViewCell! 

var cell : AnyObject 

を置き換えますメソッドはUITableViewcellのオブジェクトを返します。 "UITableViewcell"型の変数を取らなければならないセルのタイプと異なる場合は、このメソッドのanyobjectのように動作します。

関連する問題