我试图用结构中的变量重新排序一个表。我知道它适用于字符串,如下所示。
var items:[String] = ["Item one", "item two", "item three"]再序法
override func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath) {
let item:String = items[fromIndexPath.row]
self.items.remove(at: fromIndexPath.row)
items.insert(item, at: to.row)
self.tableView.reloadData()我设法使我的"summery“变量出现在单元格上,并使"text”变量出现在我的viewController中。但是,我很难弄清楚如何使用struct变量重新排序。我相信是这样的吗?
到目前为止,我还没有尝试的地方(下面)给了我一个错误:无法将类型字符串转换为项
类中的结构(Items.swift)
struct Item {
var summery: String
var text: String
}
var items:[Item]再序法
override func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath) {
var item = Items.sharedInstance
let itemToMove:String = item.items[fromIndexPath.row].summery
item.items.remove(at: fromIndexPath.row)
// Problem is on line below //
item.items.insert(itemToMove, at: to.row)
self.tableView.reloadData()
}发布于 2016-12-11 18:22:57
这是因为您试图将字符串插入到Item结构数组中
替换
override func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath) {
var item = Items.sharedInstance
let itemToMove:String = item.items[fromIndexPath.row].summery
item.items.remove(at: fromIndexPath.row)
// Problem is on line below //
item.items.insert(itemToMove, at: to.row)
self.tableView.reloadData()
}使用
override func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath) {
var item = Items.sharedInstance
let itemToMove = item.items[fromIndexPath.row]
item.items.remove(at: fromIndexPath.row)
item.items.insert(itemToMove, at: to.row)
self.tableView.reloadData()
}https://stackoverflow.com/questions/41089384
复制相似问题