【发布时间】:2021-04-12 13:05:58
【问题描述】:
我有一个依赖 CoreData 的小型 iOS 应用程序。 我目前有两个实体,“Product”和“StorageLocation”。 它们之间是一对多的关系。 我手动生成了类;模型编辑器也会显示正确的类名。
当尝试保存包含与“StorageLocation”关系的新“产品”时,我收到此错误:
-[StorageLocation addProductsObject:]:无法识别的选择器发送到实例 0x60000389d280"
生成的NSManagedObject类如下:
import Foundation
import CoreData
extension StorageLocation {
@nonobjc public class func fetchRequest() -> NSFetchRequest<StorageLocation> {
return NSFetchRequest<StorageLocation>(entityName: "StorageLocation")
}
@NSManaged public var id: UUID?
@NSManaged public var name: String?
@NSManaged public var products: NSSet?
}
// MARK: Generated accessors for products
extension StorageLocation {
@objc(addProductsObject:)
@NSManaged public func addToProducts(_ value: Product)
@objc(removeProductsObject:)
@NSManaged public func removeFromProducts(_ value: Product)
@objc(addProducts:)
@NSManaged public func addToProducts(_ values: NSSet)
@objc(removeProducts:)
@NSManaged public func removeFromProducts(_ values: NSSet)
}
extension StorageLocation : Identifiable {
}
正如错误所说,问题是我这样调用的方法“addToProducts”:
let newItem = Product(context: viewContext)
newItem.id = id
newItem.name = name
newItem.qty = Int32(actualQty)
newItem.expDate = expDate
location.addToProducts(newItem)
我还检查了模型是否与类匹配,没有发现错误。
有什么想法/提示吗?
谢谢 马可
【问题讨论】:
-
核心数据模型中两个实体之间的关系名称是什么?
-
这是我的模特:i.imgur.com/ZOtxjz0.png
-
呃?抱歉,我没有看到它们不匹配的地方
-
你还有文件 StoregaLocation+CodeDataClass.swift 吗?
-
我发布的是文件 StorageLocation+CoreDataProperties.swift