---------- 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 № 1W 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:
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.