Я пытаюсь прочитать данные из CoreData в пользовательскую ячейку.Это всего лишь тестовое приложение, прежде чем я попытаюсь перейти к реальному приложению, над которым я работал.Данные есть - я могу распечатать их на консоли и посмотреть.По какой-то причине, даже с учетом ограничений, все данные располагаются друг над другом в ячейке.Может кто-нибудь увидеть, что происходит с этим?
Я создал ограничения, чтобы держать ячейки там, где они должны быть, но когда данные загружаются из моей кнопки «Показать данные», данные кладутся поверхдруг друга.
Вот мой пользовательский класс ячеек:
import UIKit
class CustomCellClass: UITableViewCell {
@IBOutlet weak var txtNameLabel: UILabel!
@IBOutlet weak var txtAgeLabel: UILabel!
}
Вот класс ShowData: (частичный)
class ShowData: UIViewController, NSFetchedResultsControllerDelegate {
@IBOutlet weak var personTableView: UITableView!
let appDelegate = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
var personData = [Person]()
// Read the data
override func viewDidLoad() {
super.viewDidLoad()
personTableView.delegate = self
personTableView.dataSource = self
loadItems()
}
func loadItems() {
let request : NSFetchRequest<Person> = Person.fetchRequest()
do {
personData = try appDelegate.fetch(request)
} catch {
print("couldn't load")
}
}
}
extension ShowData : UITableViewDataSource, UITableViewDelegate {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return personData.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let person = personData[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: "personNameAge", for: indexPath) as! CustomCellClass
cell.txtNameLabel?.text = person.name
cell.txtAgeLabel?.text = String(person.age)
return cell
}
Вот скриншот таблицыво время работы:
Редактировать :
Я просто удалил приложение из симулятора и попытался перезапустить - теперь нетлюбые данные в ячейках.