SWIFT:在保存到 sqlite 之前检查数据是不是存在
Posted
技术标签:
【中文标题】SWIFT:在保存到 sqlite 之前检查数据是不是存在【英文标题】:SWIFT: Checking data IF EXIST before saving into sqliteSWIFT:在保存到 sqlite 之前检查数据是否存在 【发布时间】:2016-01-14 17:30:18 【问题描述】:我可以通过这种方式将数据通过 SWIFT 保存到 sqlite 数据库中。
for aItem in jsonItems
let appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let moContext:NSManagedObjectContext = appDel.managedObjectContext
let ModelAnimal = NSEntityDescription.insertNewObjectForEntityForName("TBL_animal", inManagedObjectContext: moContext) as! ModelAnimal
ModelAnimal.wId = aItem["wId"] as? NSNumber
ModelAnimal.wName = aItem["wName"] as? String
do
try moContext.save()
catch
print("Data not Saved in Database")
但是在将数据保存到 sqlite 之前检查 IF EXIST 的最简单方法是什么?
【问题讨论】:
我假设您使用的是 CoreData,而不是 sqlite 或 SQL!? 【参考方案1】:使用 Core Data,您可以通过获取条目来检查条目是否已经存在,并使用谓词使用任何字段来标识唯一条目。假设您的 wId
是唯一的,您会这样做:
NSFetchRequest *fetch = [NSFetchRequest fetchRequestWithEntityName:@"TBL_animal"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"wId = %@", ModelAnimal.wId"];
fetch.predicate = predicate;
NSError *error = nil;
NSUInteger count = [moContext countForFetchReuqest:fetch error:&error];
这将告诉您有多少现有对象与您的谓词匹配。
【讨论】:
以上是关于SWIFT:在保存到 sqlite 之前检查数据是不是存在的主要内容,如果未能解决你的问题,请参考以下文章