我正在为初学者开设一个快速的开发课程,并且我试图创建一个非常简单的应用程序,一旦按下按钮就会创建带有输入文本的新任务,但我遇到了一些错误,我可以&#39似乎很明白。
错误发生在我的ViewController中,编辑器告诉我我的核心数据实体没有名为" corename"虽然很好。
以下是错误的屏幕截图:3 errors
这是我的代码:
import UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
var tasks : [Taskentity] = []
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
// Do any additional setup after loading the view, typically from a nib.
}
override func viewWillAppear(_ animated: Bool) {
//Get the data from Core data
getData()
//Reload the table view
tableView.reloadData()
}
func numberOfSections(in tableView: UITableView) -> Int {
return tasks.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath : IndexPath) -> UITableViewCell {
let cell = UITableViewCell()
let task = tasks[indexPath.row]
if (task.isImportant == true){
cell.textLabel?.text = " \(tasks.corename!)"
} else {
cell.textLabel?.text = tasks.corename!
}
return cell
}
func getData() {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
do {
tasks = try context.fetch(Taskentity.fetchRequest())
} catch {
print("Fetching Data")
}
}
}
答案 0 :(得分:1)
任务是一个Taskentities数组,您可能打算访问task.corename而不是tasks.corename
if (task.isImportant == true){
cell.textLabel?.text = " \(task.corename!)"
} else {
cell.textLabel?.text = task.corename!
}
对于TableViewDelegate问题,只需确保实现所有必要的功能......你缺少1:
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 0
}