ios - Definition conflicts with a previous value after moving table functions into another function -
because of scope limit have socket.on("reply"), have move of table functions inside function addhandler()
as can see, func addhandler() inherit secondviewcontroller , 2 errors occur after move table functions
1) type secondviewcontroller not conform protocol 'uitableviewdatasource'
2) definition conflicts previous value (this part don't understand)
class secondviewcontroller: uiviewcontroller, uitableviewdatasource{//error 1 override func viewdidload() { super.viewdidload() print("second view loaded") self.title = "ranking" addhandler() socket.connect() } func addhandler()->secondviewcontroller{ socket.on("reply") {data, ack in let json = json(data) print(json[0].count) let pcount:int = json[0].count func numberofsectionsintableview(tableview: uitableview) -> int { return 1 } func tableview(tableview: uitableview, numberofrowsinsection section: int) -> int { //return data.count when data available server return pcount } func tableview(tableview: uitableview, cellforrowatindexpath indexpath: nsindexpath) -> uitableviewcell {//error 2 let cell = tableview.dequeuereusablecellwithidentifier("tablecell", forindexpath: indexpath) uitableviewcell //everything refers let patient = patientsample[indexpath.row] patient if let celllist = cell.viewwithtag(100) as? uilabel{ celllist.text = string(indexpath.row + 1) } //setting cell connection if let sexicon = cell.viewwithtag(101) as? uiimageview{ sexicon.image = self.gendericon(patient.ismale!) } if let namelabel = cell.viewwithtag(102) as? uilabel{ namelabel.text = patient.name } if let scorelabel = cell.viewwithtag(103) as? uilabel{ scorelabel.text = string(patient.score) } return cell } var i=0; i<pcount; ++i{ let patient = patient(id: json[0][i]["id"].intvalue, name: json[0][i]["name"].stringvalue, mileage: json[0][i]["mileage"].doublevalue) } }//end of function addhandler } //gender icon func gendericon(ismale:bool) -> uiimage{ if ismale == true{ return uiimage(named: "boy")! }else{ return uiimage(named: "girl")! } } override func didreceivememorywarning() { super.didreceivememorywarning() } }
error #1: due fact class secondviewcontroller isn't implementing required methods needed when adopting uitableviewdatasource delegate. because scope of tableview methods unreachable.
error #2: in swift can't declare functions within functions have done.
take of tableview related methods out of addhandler() method.
if want tableview reload data when socket receives 'reply' message. use tableview.reloaddata().
Comments
Post a Comment