[英]Strange behaviour with core data entity
我有這部分代碼
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let itemID:NSManagedObjectID = self.frc!.objectAtIndexPath(indexPath).objectID!
let entity:Entity = self.frc?.managedObjectContext.existingObjectWithID(itemID, error: nil) as Entity
if entity.completed {
entity.completed = false
} else {
entity.completed = true
}
println(entity.completed)
}
事件發生時,tableView執行滾動到頂部動畫的任何想法?
您可能通過某種委托方法以某種方式(未顯示)更新了托管對象數組。 您很可能在某個地方調用tableView.reloadData()
來更新顯示的數據。 這將自動重新加載整個表格視圖,並將滾動到頂部。
相反,只需使用此處記錄的tableView.reloadRowsAtIndexPaths(rowAnimation:)
更新相關單元格tableView.reloadRowsAtIndexPaths(rowAnimation:)
。
也許您的排序例程(未顯示)是按completed
屬性排序的。 然后滾動可能是預期的行為。
注意:將ID數組保留為dataSource
似乎很奇怪。 由於核心數據的錯誤行為,僅擁有一個對象數組將同樣有效。 甚至更好的是,您應該將NSFetchedResultsController
與表視圖一起使用-您免費獲得許多很酷的行為,並且可以保證擁有性能和內存管理的最佳解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.