如何限制核心数据中重复对象的输入

how to restrict entry of duplicate object in core data

如何限制核心数据中的重复输入

//MARK:- save in core data
let appDel1:AppDelegate = UIApplication.shared.delegate as! AppDelegate
let context:NSManagedObjectContext = appDel1.persistentContainer.viewContext
let userObj:NSManagedObject = NSEntityDescription.insertNewObject(forEntityName: "RPAData", into: context)
                
userObj.setValue(rpaType, forKey: "rpatype")
userObj.setValue(rpaReg, forKey: "rparegistration")
userObj.setValue(identificationNumber, forKey: "identificationnumber")
userObj.setValue(rpaTypeId, forKey: "rpatypeid")
                
                do{
                    try context.save()
                    print("rpaReg , identificationNumber , rpaTypeId and rpaType Saved in core Data...")
                } catch {
                    print("Error in save - ", error)
                }

如果所有 4 个条目(rpaReg、identificationNumber、rpaTypeId 和 rpaType)的组合相同,则这些数据将不会保存在核心数据中,并且会显示警报。

这就是我从核心数据中获取数据的方式

var dataArray:[NSManagedObject] = []

let appDel1:AppDelegate = UIApplication.shared.delegate as! AppDelegate
let context:NSManagedObjectContext = appDel1.persistentContainer.viewContext
let fetchRequest:NSFetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "RPAData")
            do
            {
                dataArray = try context.fetch(fetchRequest) as! [NSManagedObject]
            } catch {
                print("error =>",error)
            }

在您的实体中添加一些约束

然后在保存失败时用这个来显示错误(默认值)

context.mergePolicy = NSErrorMergePolicy