我试图从我的 CoreData 实体中删除一行,但它总是返回此错误,我做错了什么?
错误日志
*** Terminating app due to uncaught exception 'NSRangeException',
reason: '*** -[__NSArray0 objectAtIndex:]: index 1 beyond bounds for empty NSArray'
CartViewModel.swift
class CartViewModel {
var managedObjectContext = PersistenceController.shared.container.viewContext
@FetchRequest(
entity: Cart.entity(),
sortDescriptors: [
NSSortDescriptor(keyPath: \Cart.menuName, ascending: true)
]
) var cartItems: FetchedResults<Cart>
func deleteItem(at index: Int) {
print(index)
let cart = cartItems[index]
managedObjectContext2.delete(cart)
PersistenceController.shared.save()
}
func addToCart(menuCode: String, menuName: String, menuImg: String) {
let newCart = Cart(context: managedObjectContext)
newCart.menuCode = menuCode
newCart.menuName = menuName
newCart.menuImg = menuImg
PersistenceController.shared.save()
print(newCart)
}
}
Persistence.swift
struct PersistenceController {
static let shared = PersistenceController()
/*** Default code from new project ***/
func save() {
let context = container.viewContext
if context.hasChanges {
print("CHANGE")
do {
try context.save()
} catch {
// Show some error here
print("ERROR")
let nserror = error as NSError
fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
}
} else {
print("NO CHANGES")
}
}
}
函数 addToCart 完美运行,将新项目添加到 Entity 中,但删除一行总是返回错误。我错过了什么?提前致谢。