gpt4 book ai didi

ios - 核心数据更新发生不当

转载 作者:行者123 更新时间:2023-11-28 14:46:14 25 4
gpt4 key购买 nike

我正在像这样更新 coredata 中的某个值...

 let managedContext = self.appDelegate.persistentContainer.viewContext
let fetchRequest: NSFetchRequest<ProductFields> = ProductFields.fetchRequest()

fetchRequest.predicate = NSPredicate(format: "sellerId = %@", self.mySellerId) //CRASH HERE


do {

let array_categories = try managedContext.fetch(fetchRequest)
let cat = array_categories[0]

cat.setValue("1", forKey: "isSync")

try managedContext.save()
} catch let error as NSError {
print("Could not save. \(error), \(error.userInfo)")
}

但它在 fetchRequest.predicate = NSPredicate(format: "sellerId = %@", self.mySellerId) 这行崩溃了它没有给出崩溃的任何具体原因..只是 线程 1:EXC_BAD_ACCESS...

但奇怪的事情发生了。我将一个标签拖到我的屏幕上,将其命名为 sellerIdLabel 左右..然后将 sellerID 的值分配给它。现在我将发生崩溃的行修改为

fetchRequest.predicate = NSPredicate(格式: "sellerId = %@", self.theSellerIDLabel.text!)

即我将 self.mySellerId 替换为 self.theSellerIDLabel.text!。现在崩溃已经解决,一切正常。我对这种看似奇怪的行为感到困惑。为什么会这样……为什么在第一种情况下不起作用……?

最佳答案

当您尝试使用不正确的类型构建谓词时,通常会发生这种崩溃。

检查您的 sellerId 的类型。如果它不是字符串,则不应使用 %@。

例如,如果它是一个整数,那么这一行:

fetchRequest.predicate = NSPredicate(format: "sellerId = %@", self.mySellerId)

应该是:

fetchRequest.predicate = NSPredicate(format: "sellerId = %d", self.mySellerId)

关于ios - 核心数据更新发生不当,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50226881/

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