簡體   English   中英

核心數據實體的奇怪行為

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM