ios开发的大家,肯定都知道OC中的CoreData特别难用;swift3.0改变了CoreData的用法,非常方便开发者使用!
一、创建.xcdatamodeld文件;初始化字段

二、save数据
// 获取Context
func getContext () -> NSManagedObjectContext {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
return appDelegate.persistentContainer.viewContext
}
// 存储Person
func storePerson(name:String, age:Int){
let context = getContext()
// 定义一个entity,这个entity一定要在xcdatamodeld中做好定义
let entity = NSEntityDescription.entity(forEntityName: "Person", in: context)
let person = NSManagedObject(entity: entity!, insertInto: context)
person.setValue(name, forKey: "name")
person.setValue(age, forKey: "age")
do {
try context.save()
print("saved")
}catch{
print(error)
}
}
3、读取数据
// 获取某一entity的所有数据
func getPerson(){
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Person")
do {
let searchResults = try getContext().fetch(fetchRequest)
print("numbers of \(searchResults.count)")
for p in (searchResults as! [NSManagedObject]){
print("name: \(p.value(forKey: "name")!) age: \(p.value(forKey: "age")!)")
}
} catch {
print(error)
}
}
网友评论