CoreData对于data manager对象提供了数据验证的机制,只有验证成功才可以插入底层的持久存储,参考如下代码:
if let ks = NSManagedObject(entity: entity, insertInto: containerVC.managedObjectContext) as? KsMain{
//fill data to ks object
//插入数据库
insert(ks)
}
func insert(_ ks:KsMain){
do{
try ks.validateForInsert()
saveContext()
}catch{
print(error.localizedDescription)
}
}
我们当然在KsMain类中写了验证的方法,测试可知当ks未能通过验证时的确无法插入底层的数据库