ios - 执行获取时未调用 FetchedResultController 中的方法
问题描述
我想知道如何grabDataFromEntity(gamesObject: fetchedObjects)
在执行提取后调用 fetchresult 控制器中的方法。即使我将方法放在外部并紧跟在 fetch 控制器之后。是和核心数据并发还是多线程有关。
class ViewController: UIViewController, NSFetchedResultsControllerDelegate {
var game : Game?
var gamesMo: [GameModel]? = []
lazy var context : NSManagedObjectContext = {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
return appDelegate.persistentContainer.viewContext
}()
lazy var fetchRequestController : NSFetchedResultsController<GameModel> = {
let fetchRequest = NSFetchRequest<GameModel>(entityName: "Game")
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "date", ascending: false)]
// fetch result controller
let frc = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil)
frc.delegate = self
do {
try frc.performFetch()
if let fetchedObjects = frc.fetchedObjects {
self.gamesMo = fetchedObjects
grabDataFromEntity(fromContext: fetchedObjects)
}
} catch{
fatalError("Failed to fetch entities: \(error)")
}
return frc
}()
func grabDataFromEntity(fromContext gamesObject: [GameModel]){
guard let game = game else { return }
for gameFromModel in gamesObject {
game.corners = Int(gameFromModel.corners)
game.fouls = Int(gameFromModel.fouls)
game.gameOutcome = gameFromModel.gameOutcome
game.goal = Int(gameFromModel.goal)
}
gamesArray?.append(game)
}
}
解决方案
推荐阅读
- openstreetmap - Overpass API:向上递归和过滤
- html - 由于 MIME 类型(“text/html”)与 pug 和 express 不匹配(X-Content-Type-Options: nosniff),来自 [...] 的资源被阻止
- jenkins - 共享声明性管道:重载调用运算符,同时保持对管道步骤的访问
- c# - 显示对象时播放特定声音
- firebase - 无法从 firebase 数据库映射数据数组
- mysql - 如何通过排除 SQL 中的行来添加数字
- ios - IOS自动更新订阅通知处理
- c# - 如何将 SQL 表列中的值放入 C# 中的数组中?
- google-sheets - 谷歌表单根据在第一个字段中选择的内容从电子表格中加载数据
- apache-kafka - 为什么 Kafka 因日志目录错误而停止?