#ios #swift #xcode #uitableview #tableview
#iOS #swift #xcode #uitableview #просмотр таблицы
Вопрос:
Я следую руководству о том, как создать таймер, и я не могу понять, что я сделал не так. Вот код, в котором я думаю, что что-то идет не так:
import UIKit
class ViewController: UIViewController {
var laps: [String] = []
var minutes = 0
var fractions = 0
var seconds = 0
var timer = NSTimer()
var timerIsOn = false
var timerString: String = ""
@IBOutlet weak var timerLabel: UILabel!
@IBOutlet weak var lapsTable: UITableView!
@IBAction func startButton(sender: AnyObject) {
if timerIsOn == false {
fractions = 0
seconds = 0
minutes = 0
timerLabel.text = "(minutes):(seconds).(fractions)"
timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: (#selector(ViewController.updateTimer)), userInfo: nil, repeats: true)
timerIsOn = true
}
}
@IBAction func stopButton(sender: AnyObject) {
timer.invalidate()
timerIsOn = false
laps.insert(timerString, atIndex: 0)
lapsTable.reloadData()
}
func updateTimer(){
fractions = 1
if fractions == 100 {
fractions = 0
seconds = 1
}
if seconds == 60 {
seconds = 0
minutes = 1
}
timerLabel.text = "(minutes):(seconds).(fractions)"
}
func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
var cell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: "Cell")
cell.backgroundColor = self.view.backgroundColor
cell.textLabel!.text = "Solve (indexPath.row)"
cell.detailTextLabel?.text = laps[indexPath.row]
return cell
}
func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
return laps.count
}
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.
}
}
и это ошибка:
Таймер [3034:273560] -[UITableView copyWithZone:]: нераспознанный селектор, отправленный экземпляру 0x7f893301da00 2016-10-04 15:33:34.565 Таймер кубика профессора [3034:273560] *** Завершение работы приложения из-за неперехваченного исключения ‘NSInvalidArgumentException’, причина: ‘-[UITableView copyWithZone:]: нераспознанный селектор, отправленный вэкземпляр 0x7f893301da00
Пожалуйста, помогите.
Комментарии:
1. Не похоже, что ваша проблема здесь. Установите точку останова исключения, чтобы определить, где происходит сбой
2. Я решил поместить весь код сюда. Я не смог понять, что такое точка останова. В нем говорилось, что поток 1: точка останова 1.1, я не знаю, поможет ли это вам.
3. Трассировка стека сбоев помогла бы @Jackson
4. Установите стиль ячейки в построителе интерфейса и используйте повторно используемые ячейки
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
, а экземпляры табличного представления в методах делегирования не являются необязательными (без восклицательного знака)func tableView(tableView: UITableView,...