the code below show name of cells in uitableview.
override func tableview(tableview: uitableview, cellforrowatindexpath indexpath: nsindexpath) -> uitableviewcell { let cell = tableview.dequeuereusablecellwithidentifier("cell") uitableviewcell cell.textlabel!.text = "spring \(indexpath.row + 1)" return cell } there compiling error , xcode suggests me change line 'as' 'as!'-
let cell = tableview.dequeuereusablecellwithidentifier("cell") as! uitableviewcell may explains downcast , why need downcast in case?
ok..lets make simple.
on line:
let cell = tableview.dequeuereusablecellwithidentifier("cell") you accessing method dequeuereusablecellwithidentifier of tableview, if @ documentation can see return type anyobject?.
now suppose want access textlabel property
cell.textlabel!.text = "spring \(indexpath.row + 1)" you cannot it..because there no textlabel on anyobject type.
so, downcasting force compiler more specific class, uitableviewcell, below because later trying access text label property:
let cell = tableview.dequeuereusablecellwithidentifier("cell") as! uitableviewcell
Comments
Post a Comment