دنبال کننده ها

۱۳۹۶ مهر ۸, شنبه

ios - Terminating app due to uncaught exception, reason: 'attempt to delete row 3 from section 1 which only contains 0 rows before the update'

[ad_1]



I am trying to reload my TableView but I am getting this exception "Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'attempt to delete row 3 from section 1 which only contains 0 rows before the update'".



Below is my code :-



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

if statusTableView == tableView

return ModelAssessStatus.sharedInstance.arrType.count


else
if !sections[section].expanded
return 0


else
return sections[section].names.count


//return sections[section].names.count
/*if sections[section].expanded == true
return sections[section].names.count


else
return 0
*/

.

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
var expandableCategoryCell = tableView.dequeueReusableCell(withIdentifier: "ExpandableCategoryCell") as? ExpandableCategoryCell

if expandableCategoryCell == nil
var nib:Array = Bundle.main.loadNibNamed("ExpandableCategoryCell", owner: self, options: nil)!
expandableCategoryCell = nib[0] as? ExpandableCategoryCell


expandableCategoryCell?.selectionStyle = .none
expandableCategoryCell?.labelName.text = sections[indexPath.section].names[indexPath.row]
return expandableCategoryCell!

//return UITableViewCell()

.

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat

if tableView == self.expandableTableView
return 60


return 0


func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat

if tableView == self.expandableTableView
return 0


return 0


func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?

if tableView == expandableTableView

let cell = self.expandableTableView.dequeueReusableHeaderFooterView(withIdentifier: "ExpandableHeaderView")
let header = cell as! ExpandableHeaderView

header.customInit(title: sections[section].categoryType, section: section, delegate: self, isSelected: sections[section].fullSelected)

if sections[section].expanded
header.imgArrow?.image = UIImage(named : "down_Arow")//.transform = (header.imgArrow?.transform.rotated(by: CGFloat(Double.pi)))!


else
header.imgArrow?.image = UIImage(named : "error")


return cell


else
return UIView.init(frame: CGRect(x: 0, y: 0, width: 0, height: 0))



//Height For Raw at indexPath
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat

if statusTableView == tableView
return 50


else

if (sections[indexPath.section].expanded)
return 60


else
return 0



}


extension PeerCategoryStatusVC : expandableHeaderViewDelegate
func toggleSections(header: ExpandableHeaderView, section: Int)

sections[section].expanded = !sections[section].expanded

//expandableTableView.reloadData()
expandableTableView.beginUpdates()

for index in 0..<sections[section].names.count
expandableTableView.reloadRows(at: [IndexPath(row : index, section : section)], with: .automatic)


expandableTableView.endUpdates()

//self.view.layoutIfNeeded()

.


Here Begin Update and End Update TableView.
I am trying to reload tableView but don't know why I am getting exception.



If I will keep same number of rows then constraints issue is coming.



Is there anything which I have to add ?




[ad_2]

لینک منبع