一般情况
iOS中coredata 如果需要某个表指定一个类只需要在xcode中设置即可。

红框部分就是设置的地方。
对应的声明就是
class Order: NSManagedObject {
@NSManaged var oId: String
}
iOS 13后
但是升级到iOS13后出现了新问题。在iOS13之前的手机上运行
let a = NSEntityDescription.insertNewObject(forEntityName: className, into:managedObjectContext!) as! Order
完全没问题。iOS 13上就会崩溃。报错信息类似这种
Could not cast value of type 'NSManagedObject_Order_' (0x600000177960) to xxxx
经过一番摸索找到了问题修改办法。
解决办法
1 将coredata设置的Current Product Module
删除(红框部分)

2 在Order.swift文件中加入@objc(Order)
import Foundation
import CoreData
@objc(Order)
class Order: NSManagedObject {
@NSManaged var oId: String
}
网友评论