#ios #swift #swift3
#iOS #swift #swift3
Вопрос:
class showPageViewController: UIViewController, UITableViewDelegate, UITableViewDataSource
{
@IBOutlet weak var tableView: UITableView!
var records : [Record] = []
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return records.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell()
return cell
}
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath){
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
if editingStyle == .delete{
let record = records[indexPath.row]
context.delete(record)
(UIApplication.shared.delegate as! AppDelegate).saveContext()
do{
records = try context.fetch(Record.fetchRequest())
} catch{
print("Failed")
}
}
}
override func viewWillAppear(_ animated: Bool) {
getData()
tableView.reloadData()
}
func getData(){
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
do{
records = try context.fetch(Record.fetchRequest())
} catch{
print("123")
}
}
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.
}
}
Всем привет, я только что попытался отобразить основные данные в табличном представлении, я уже подключил dataSource
и delegate
к ViewController
, и я подтвердил, что в core data есть некоторые данные, кто-нибудь может мне помочь, плз? Спасибо
Комментарии:
1. нет, я могу создать приложение и смоделировать его, но просто ничего не показывать
Ответ №1:
Две большие ошибки:
- Вы не можете создать ячейку с инициализатором по умолчанию
UITableViewCell()
вы должны удалить ее из очереди. -
Вы должны получить элемент в массиве источника данных для пути к индексу и присвоить значение свойства метке ячейки.
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) let record = records[indexPath.row] cell.textLabel!.text = record.<nameOfProperty> return cell }
cell
это идентификатор, указанный в Interface Builder.
<nameOfProperty>
это свойство вашей модели данных.