gpt4 book ai didi

ios - 在核心数据对象更改时更新 uicollectionview

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:00:22 25 4
gpt4 key购买 nike

我正在尝试将 TableView 转换为 Collection View 。我让它显示单元格很好,但在我离开 View /返回或将单元格滚动到屏幕外之前,不会显示对它们所做的任何更改。数据来源于核心数据

第一个单元格正在正确更新,但其他单元格没有。如果我再次更新,它们会更新,但只会更新为上一次更新的值。我可以看到正在调用更新函数,但并未调用配置单元格来实际更新内容,仅在第一个单元格上

完整代码在这里:http://pastebin.com/BDaVS6vq

nslogs 给出的结果

// View initial load 2016-05-18 15:03:38.012 Calona[1304:315892] 3. Pet: Optional("Pea") - Exp: Optional(2000) 2016-05-18 15:03:38.022 Calona[1304:315892] 3. Pet: Optional("Squi") - Exp: Optional(2000) 2016-05-18 15:03:38.033 Calona[1304:315892] 3. Pet: Optional("Whisper Light") - Exp: Optional(2000)

// After first update 2016-05-18 15:06:12.686 Calona[1309:316804] 1. User Pet: Optional("Pea") 2016-05-18 15:06:12.698 Calona[1309:316804] 2. Update 2016-05-18 15:06:12.705 Calona[1309:316804] 3. Pet: Optional("Pea") - Exp: Optional(4000) 2016-05-18 15:06:12.710 Calona[1309:316804] 3. Pet: Optional("Squi") - Exp: Optional(3000) 2016-05-18 15:06:12.714 Calona[1309:316804] 3. Pet: Optional("Whisper Light") - Exp: Optional(3000) 2016-05-18 15:06:12.725 Calona[1309:316804] 1. User Pet: Optional("Squi") 2016-05-18 15:06:12.732 Calona[1309:316804] 2. Update 2016-05-18 15:06:12.737 Calona[1309:316804] 1. User Pet: Optional("Whisper Light") 2016-05-18 15:06:12.742 Calona[1309:316804] 2. Update 2016-05-18 15:06:12.895 Calona[1309:316804] 2. Update 2016-05-18 15:06:12.895 Calona[1309:316804] 2. Update

After second update 2016-05-18 15:06:26.903 Calona[1309:316804] 1. User Pet: Optional("Pea") 2016-05-18 15:06:26.918 Calona[1309:316804] 2. Update 2016-05-18 15:06:26.924 Calona[1309:316804] 3. Pet: Optional("Pea") - Exp: Optional(5000) 2016-05-18 15:06:26.931 Calona[1309:316804] 3. Pet: Optional("Squi") - Exp: Optional(4000) 2016-05-18 15:06:26.936 Calona[1309:316804] 3. Pet: Optional("Whisper Light") - Exp: Optional(4000) 2016-05-18 15:06:26.945 Calona[1309:316804] 1. User Pet: Optional("Squi") 2016-05-18 15:06:26.952 Calona[1309:316804] 2. Update 2016-05-18 15:06:26.958 Calona[1309:316804] 1. User Pet: Optional("Whisper Light") 2016-05-18 15:06:26.962 Calona[1309:316804] 2. Update 2016-05-18 15:06:27.045 Calona[1309:316804] 2. Update 2016-05-18 15:06:27.047 Calona[1309:316804] 2. Update 2016-05-18 15:06:27.048 Calona[1309:316804] 2. Update

最佳答案

您的 ViewControllerviewDidLoad 中可能缺少这些行:

self.collectionView.dataSource = self;
self.collectionView.delegate = self;

并尝试使用:

func controllerDidChangeContent(controller: NSFetchedResultsController) {
self.collectionView.performBatchUpdates({ () -> Void in
self?.blockOperation.start();
}, completion: { (success) -> Void in
...
})
}

我还定义了:

func controllerWillChangeContent(controller: NSFetchedResultsController) {
self.blockOperation = NSBlockOperation();
}

关于ios - 在核心数据对象更改时更新 uicollectionview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37256204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com