如何比较 2 个数组并将最后一项附加到第二个数组 iOS Swift 3

How to compare 2 arrays and append last items to second array iOS Swift 3

假设我有一个 firstArray 的 PFObject[](来自 Parse SDK),它有 7 个项目,我从 firstArray 中创建了一个 secondArray:

secondArray = firstArray

然后我向数据库调用查询以检索更新的数据,它们现在在 firstArray 中有 10 个项目。

我是这样做的:

if firstArray.count > secondArray.count {
      let lastItems = firstArray.count - secondArray.count
     // lastItems = 3
}

我如何将这 3 个最后的项目按特定顺序附加到 secondArray 的末尾?

secondArray append item 8

secondArray append item 9

secondArray append item 10

我不想 reloadData(),我只想像 WhatsApp 一样将最后 3 行添加到我的 TableView,否则 TableView 将滚动到顶部。

谢谢!

如果 firstArray 和 secondArray 相同 你可以做

secondArray = firstArray

如果您更新了 secondArray 并且只想附加新数据

var counter = 0
while secondArray.count != firstArrayCount {
    secondArray.append(firstArray[firstArray.count+counter])
    counter += 1
    //insert new row in table
}

既然你要求一种方法来附加它,这应该可行。

if firstArray.count > secondArray.count {
    for i in secondArray.count..<firstArray.count {
        secondArray.append(firstArray[i])
    }
}

希望对您有所帮助!

如果您希望在不重新加载的情况下更新您的 table 视图,则必须使用 func insertRows(在 indexPaths:[IndexPath],带有动画:UITableViewRowAnimation) 您应该查看此文档以更好地了解如何执行您的任务: https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/TableView_iPhone/ManageInsertDeleteRow/ManageInsertDeleteRow.html

首先将数据附加到第二个数组

secondArray.append(firstArray[index])

然后

self.yourTableView.beginUpdates()
var insertedIndexPaths = [indexpath_where_you_want_insertData]

self.yourTableView.insertRowsAtIndexPaths(insertedIndexPaths, withRowAnimation: .Fade)
self.yourTableView.endUpdates()