gpt4 book ai didi

swift - nsfetchedresultscontroller 在 swift 中删除具有名称的缓存

转载 作者:搜寻专家 更新时间:2023-10-31 08:16:32 25 4
gpt4 key购买 nike

标题已经说明了。从 nsfetchedresultscontroller 中删除缓存的快速代码是什么。

这是我得到的错误:

You have illegally mutated the NSFetchedResultsController's fetch request, its predicate, or its sort descriptor without either disabling caching or using +deleteCacheWithName:'

和代码:

if arranged == "naam - A-Z" {
let sortDescriptor = NSSortDescriptor(key: "name", ascending: true)
self.fetchedResultsController.fetchRequest.sortDescriptors = [sortDescriptor]
}else if arranged == "naam - Z-A" {
let sortDescriptor = NSSortDescriptor(key: "name", ascending: false)
self.fetchedResultsController.fetchRequest.sortDescriptors = [sortDescriptor]
}else if arranged == "gemiddelde - 1-10" {
let sortDescriptor = NSSortDescriptor(key: "gemiddelde", ascending: true)
self.fetchedResultsController.fetchRequest.sortDescriptors = [sortDescriptor]
}else if arranged == "gemiddelde - 10-1" {
let sortDescriptor = NSSortDescriptor(key: "gemiddelde", ascending: false)
self.fetchedResultsController.fetchRequest.sortDescriptors = [sortDescriptor]
}

do {
try _fetchedResultsController!.performFetch()
} catch {
// Replace this implementation with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
// print("Unresolved error \(error), \(error.userInfo)")
abort()
}
tableView.reloadData()

如果您需要更多信息,请告诉我。

更新:

我想要这样的东西:

fetchedResultsController.deleteCacheWithName("Master")

但是我不知道怎么办。

最佳答案

fetchedResultsController.deleteCacheWithName("Master")

不编译因为

public class func deleteCacheWithName(name: String?)

是一个类型函数,它必须在类型(类)本身上调用,不在实例上:

// Swift 2:
NSFetchedResultsController.deleteCacheWithName("Master")
// Swift 3:
NSFetchedResultsController<NSFetchRequestResult>.deleteCache(withName: "Master")

如果您正在使用缓存,则必须在更改任何提取请求、其谓词或其排序描述符之前清除缓存。或者,您可以创建获取的结果 Controller 不使用缓存:

NSFetchedResultsController(..., cacheName: nil)

关于swift - nsfetchedresultscontroller 在 swift 中删除具有名称的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35441261/

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