/ / debug in swift: nie znajduję błędu w cod - swift, swift2

debugowanie w swift: nie znajduję błędu w cod - swift, swift2

---------- BŁĄD TO: 31.07.2016 11:16:36.116 t6_TableDemo [900: 25064] - [UIView tableView: numberOfRowsInSection:]: nierozpoznany selektor wysłany do instancji 0x7feaa273c520 2016-07-31 11: 16: 36.326 t6_TableDemo [900: 25064] * Zamykanie aplikacji z powodu niezłapanego wyjątku „NSInvalidArgumentException”, przyczyna: „- [UIView tableView: numberOfRowsInSection:]: nierozpoznany selektor wysłany do wystąpienie 0x7feaa273c520 ” * Stos wywołań pierwszego rzutu: (


Kod to:

{
//

//  ViewController.swift

//  t6_TableDemo

//

//  Created by dvd shd on 7/29/16.

//  Copyright © 2016 zohur. All rights reserved.

//


import UIKit


class ViewController: UIViewController,UITableViewDataSource {


let devcourses=[("ios App","simon All" ),("ios 8","Biotifull"),("Win 7"," it is good"), ("Windows 8","is a bad"), ("Linux 7","is better"), ("ios 9","verry very Good"),("Xcode 7","it is better")]



let webcourses=[("rghamsar","akhavan" ),("azmadar","bakhshali"),("rezapedar","shokrollahzadeh"), ("mohammadhoseinfarzand","shokrollahzadeh"), ("zhkhahar","shokrollahzadeh"), ("pakhahar","shokrollahzadeh"),("khodam","it is better")]






func numberOfSectionsInTableView(tableView: UITableView) -> Int {

return 2

}



func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {





if section == 0 {

return devcourses.count

} else

{

return webcourses.count

}



}



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

var cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)as UITableViewCell









if indexPath.section == 0 {

let (courseTitle,courseAuthor)=devcourses[indexPath.row]

cell.textLabel?.text=courseTitle

cell.detailTextLabel?.text = courseAuthor





}

else {

let (courseTitle,courseAuthor)=webcourses[indexPath.row]

cell.textLabel?.text=courseAuthor

cell.detailTextLabel?.text=courseTitle

}

// Retrieve in image

var myImage = UIImage(named: "CellIcon")

cell.imageView?.image=myImage



return cell

}





func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {

if section == 0 {

return "Developer Courses"

} else

{

return "Web Courses"

}

}







override func viewDidLoad() {

super.viewDidLoad()

// Do any additional setup after loading the view, typically from a nib.

}


override func didReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

// Dispose of any resources that can be recreated.

}



}



}

Odpowiedzi:

0 dla odpowiedzi № 1

W swoim projekcie przegapiłeś 2 rzeczy.

1: Utwórz plik @IBOutlet dla Twojego tableView.

2: Zgodność z dataSource w Twoim viewDidLoad metoda, a Twój wynik będzie:

wprowadź opis obrazu tutaj

Kompletny kod będzie wyglądał następująco:

import UIKit

class ViewController: UIViewController,UITableViewDataSource {


let devcourses=[("ios App","simon All" ),("ios 8","Biotifull"),("Win 7"," it is good"), ("Windows 8","is a bad"), ("Linux 7","is better"), ("ios 9","verry very Good"),("Xcode 7","it is better")]

let webcourses=[("rghamsar","akhavan" ),("azmadar","bakhshali"),("rezapedar","shokrollahzadeh"), ("mohammadhoseinfarzand","shokrollahzadeh"), ("zhkhahar","shokrollahzadeh"), ("pakhahar","shokrollahzadeh"),("khodam","it is better")]

@IBOutlet weak var tblView: UITableView!

override func viewDidLoad() {

super.viewDidLoad()

tblView.dataSource = self
}

func numberOfSectionsInTableView(tableView: UITableView) -> Int {

return 2

}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

if section == 0 {

return devcourses.count

} else {

return webcourses.count

}
}

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

let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)as UITableViewCell

if indexPath.section == 0 {

let (courseTitle,courseAuthor)=devcourses[indexPath.row]

cell.textLabel?.text=courseTitle

cell.detailTextLabel?.text = courseAuthor

}

else {

let (courseTitle,courseAuthor)=webcourses[indexPath.row]

cell.textLabel?.text=courseAuthor

cell.detailTextLabel?.text=courseTitle

}

// Retrieve in image

let myImage = UIImage(named: "CellIcon")

cell.imageView?.image=myImage

return cell

}

func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {

if section == 0 {

return "Developer Courses"

} else {

return "Web Courses"

}
}
}

Czek Projekt demonstracyjny po więcej informacji.