如何限制核心数据中重复对象的输入
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
如何限制核心数据中的重复输入
//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