我正在开发一个应用程序,用于跟踪大学课程阅读任务。每个ReadingAssignment包括一个Bool值,指示读者是否完成了任务。ReadingAssignments被收集到WeeklyAssignment数组中。我希望用户能够触摸标签并显示选中标记以表示已完成任务。我也希望这种触摸还更新.checked属性为true,以便我可以保留数据。 因此,我尝试让gestureRecognizer调用labelTicked()方法。这个方法有效并在控制台上打印输出。但是,当我尝试传递参数assignment时,它会编译,但在触摸时崩溃,出现“未识别的选择器”错误。我已经阅读了这里可以找到的所有主题,并没有找到解决方案。他们都说“:”表示具有参数的选择器,但仍然无法实现。 你能看出我做错了什么吗?
func configureCheckmark(cell: UITableViewCell, withWeeklyAssignment assignment: WeeklyAssignment) {
let checkLabel = cell.viewWithTag(1002) as! UILabel
checkLabel.userInteractionEnabled = true
let gestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("labelTicked:assignment"))
checkLabel.addGestureRecognizer(gestureRecognizer)
}
@objc func labelTicked(assignment: WeeklyAssignment) {
assignment.toggleCheckmark()
if assignment.checked {
label.text = "✔︎"
} else {
label.text = ""
}
}
我也希望能够传递UILabel checkLabel,以便在labelTicked()方法中更新它。 感谢你的帮助。