/ / налагодження в swift: я не знайшов помилки в cod - swift, swift2

debug in swift: Я не знаходжу помилки в коді - swift, swift2

---------- ПОМИЛКА: 2016-07-31 11:16:36.116 t6_TableDemo [900: 25064] - [UIView tableView: numberOfRowsInSection:]: невпізнаний селектор, надісланий екземпляру 0x7feaa273c520 2016-07-31 11: 16: 36.326 t6_TableDemo [900: 25064] * Припинення дії програми через невпійманий виняток "NSInvalidArgumentException", причина: "- [UIView tableView: numberOfRowsInSection:]: невпізнаний селектор надіслано в екземпляр 0x7feaa273c520 " * Перший кидок стека викликів: (


А код такий:

{
//

//  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.

}



}



}

Відповіді:

0 для відповіді № 1

Ви пропустили 2 речі у своєму проекті.

1: Створіть @IBOutlet для вашого tableView.

2: Відповідає його dataSource в твоїй viewDidLoad і ваш результат буде:

введіть опис зображення тут

Повний код буде:

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"

}
}
}

Перевірте Демо-проект для отримання додаткової інформації.