作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在像这样更新 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/
我正在编写一个 native iOS 7 应用程序,需要从 JSON api(由我控制)检索数据。 JSON 输出示例如下: { "id" : "544", "name" : "1900 Green
我是一名优秀的程序员,十分优秀!