import UIKit
class PartiesTableViewController: UITableViewController
{
let cellIdentifier = "partyCell"
var parties: [Party]?
let persistence = Persistence()
let dateFormatter = DateFormatter()
override func viewDidLoad()
{
super.viewDidLoad()
tableView.register(UITableViewCell.self, forCellReuseIdentifier: cellIdentifier)
dateFormatter.dateStyle = DateFormatter.Style.short
dateFormatter.timeStyle = DateFormatter.Style.short
print("PartiesTableViewController.viewDidLoad() begins")
}
override func viewDidAppear(_ animated: Bool)
{
parties = persistence.fetchParties()
tableView.reloadData()
}
//UITableViewDataSource
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return parties?.count ?? 0
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
print("PartiesTableViewController.tableView() begins")
let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath)
if let parties = parties
{
let party = parties[indexPath.row]
print("partyname = \(party.name) \(party.startDate)")
let strDate = dateFormatter.string(from: party.startDate)
cell.textLabel?.text = "\(party.name) - \(strDate)"
}
return cell
}
//UITableViewDelegate - delete
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath)
{
if(editingStyle == UITableViewCellEditingStyle.delete)
{
parties.remove(at: indexPath.row)
}
}
}
我是iOS开发的新手,这是我的第一个待办事项列表项目。我试图从屏幕上滑动删除表格视图单元格数据。但我的方式似乎不正确。有人可以帮我实现删除单元格方法吗?最后一行parties.remove(at: indexPath.row)
给出错误:
"类型' [派对]的价值?'没有会员'删除'
答案 0 :(得分:1)
您必须打开parties
可选内容。在修改party数组后,您还必须重新加载表。
parties?.remove(at: indexPath.row)
tableView.reloadData()
有关选项的更多信息:https://developer.apple.com/reference/swift/optional
答案 1 :(得分:1)
更改
parties.remove(at: indexPath.row)
到
parties?.remove(at: indexPath.row)