如何比较 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()
假设我有一个 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()