gpt4 book ai didi

ios - 我想在 swift3 的 tableview 中插入行作为部分

转载 作者:行者123 更新时间:2023-11-29 11:42:02 26 4
gpt4 key购买 nike

我成功地在数组中附加数据,但 UITableView 没有插入和显示该数据。

但是出现如下错误

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'attempt to insert row 4 into section 0, but there are only 0 rows in section 0 after the update'

我试过这样的:

        super.viewDidLoad()

array1=["A1","B1","C1","D1"]
array2=["A2","B2","C2","D2"]
array3=["A3","B3","C3","D3"]
array4=["A4","B4","C4","D4"]
dict1=[0:array1,1:array2,3:array3,4:array4,2:names]
print( (dict1))
print( (dict1[1]?.count)!)
print(dict1.keys.count)

}
public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int

{
return (((dict1)[section])!.count)
}

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
if tableView == tableExplore {

cellMain = tableView.dequeueReusableCell(withIdentifier:"cellExp", for: indexPath) as! ExploreLocallyCell
cellMain.textLabel?.textColor = UIColor(red: 194.0/255, green: 198.0/255, blue: 198.0/255, alpha: 1.0)
cellMain.textLabel?.text=(dict1[indexPath.section])?[indexPath.row]
}
return cellMain

}
public func numberOfSections(in tableView: UITableView) -> Int // Default is 1 if not implemented
{


return dict1.keys.count
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String?
{
return (names)[section]

}

public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
self.insert(section:indexPath.section, row: indexPath.row)

}
func insert(section:Int,row:Int)
{
print(dict1[section]!)
// Update Table Data
tableView.beginUpdates()
dict1[section]!.append("BAlu")
print(dict1[section]!)
tableView.insertRows(at: [IndexPath(row:dict1[section]!.count-1, section: section)], with: .automatic)
tableView.endUpdates()
tableView.reloadData()

}

最佳答案

// No need of tableView.beginUpdates() and tableView.endUpdates() while you need to do one or two modification in UITableView 
// While you are inserting row in table programatically then no need of tableView.reloadData() because its has no meaning to do it. You should either insert or reload. It will give you same result. Diff is reload will take more performs time then insert row.

func insert(section:Int,row:Int)
{
print(dict1[section]!)
// Update Table Data
dict1[section]!.append("BAlu")
print(dict1[section]!)
tableView.insertRows(at: [IndexPath(row:dict1[section]!.count-1, section: section)], with: .automatic)
}

//Or
func insert(section:Int,row:Int)
{
print(dict1[section]!)
// Update Table Data
dict1[section]!.append("BAlu")
print(dict1[section]!)
tableView.reloadData()
}

关于ios - 我想在 swift3 的 tableview 中插入行作为部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45975131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com