无法在 tableview Swift 中显示核心数据
Posted
技术标签:
【中文标题】无法在 tableview Swift 中显示核心数据【英文标题】:Can't show the core data in tableview Swift 【发布时间】:2016-10-22 06:46:03 【问题描述】: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
,并且我确认核心数据中有一些数据,任何人都可以帮助我请?谢谢
【问题讨论】:
不,我可以构建应用程序并模拟它,但什么都不显示 【参考方案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>
是数据模型中的属性。
【讨论】:
以上是关于无法在 tableview Swift 中显示核心数据的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3 tableView 未在 reloadData() 上更新
在 Swift TableView 中显示 JSON 数据的问题
如何在 swift 中的 tableview 中的 numberOfRowsInSection 中比较和显示不同的数组计数