数组排序后IndexPath错误

时间:2017-08-22 18:12:33

标签: arrays swift uitableview sorting indexpath

我得到了一个奇怪的行为。 每次我对数组进行排序时,我的tableView都不符合我的新排序。

排列已更改,但是当我选择一行时,索引路径不正确。

func SortShoppingListItemsArrayBy_isSelected() -> Void {
    if ShoppingListsArray[currentShoppingListIndex].ItemsArray!.count > 0{
        ShoppingListsArray[currentShoppingListIndex].ItemsArray!.sort{ !$0.isSelected! && $1.isSelected! }
        ShoppingListDetailTableView.reloadData()
    }
}

有人可以告诉我原因吗?

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    if ShoppingListsArray[currentShoppingListIndex].ItemsArray!.count > 0 {
        let row = indexPath.row
        //Allow only select on checked items => unchecked must be dropped to basket
        if ShoppingListsArray[currentShoppingListIndex].ItemsArray![row].isSelected == false { return }
        ShoppingListsArray[currentShoppingListIndex].ItemsArray![row].isSelected  = ShoppingListsArray[currentShoppingListIndex].ItemsArray![row].isSelected == false ? true : false
        firebaseShoppingListItem.EditIsSelectedOnShoppingListItem(list: ShoppingListsArray[currentShoppingListIndex], shoppingListItem: ShoppingListsArray[currentShoppingListIndex].ItemsArray![row])
    }
}

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: String.ShoppingListItemTableViewCell_Identifier, for: indexPath) as! ShoppingListItemTableViewCell
        cell.selectionStyle = .none
        cell.ConfigureCell(shoppingListItem: ShoppingListsArray[currentShoppingListIndex].ItemsArray![indexPath.row])
    return cell
}

0 个答案:

没有答案