首先到CoreData項(xiàng)目的xcdatamodled中渤愁,添加ENTITYS實(shí)例
練習(xí)添加了:ENTITYS Person庙洼,attribute name:String
var people = [NSManagedObjectContext]()
1> 保存 (五步)
1绰姻、獲取總代理(appDelegate)和托管對象總管(managedObjectContext )
let appDelegate = UIApplication.shareApplication().delegate as AppDelegate
let managedObjectContext = appDelegate.manegedObjectContext!
2蒲障、建立一個(gè)entity
let entity = NSEntityDescription.entityForName("Person", inManaedObjectContext: managedObjectContext )
let person = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: managedObjectContext )
3召噩、保存數(shù)據(jù)到NSManagedObject實(shí)例(person)
person.setValue(names, forKey: "name")
4立帖、保存entity到托管對象內(nèi)容總管中(managedObjectContext )
managedObjectContext.save() {
5、保存數(shù)據(jù)到數(shù)組中碍现,更新UI
people.apend(person)
例子函數(shù):
func saveCoreDate(text: String) {
// 1
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedObjectContext = appDelegate.managedObjectContext
// 2
let entity = NSEntityDescription.entityForName("Person", inManagedObjectContext: managedObjectContext)
let person = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: managedObjectContext)
// 3
person.setValue(text, forKey: "name")
// 4
//var error: NSError?
do {
try managedObjectContext.save()
} catch let error {
print("managedObjectContext can't save!, Error: \(error)")
}
// 5
people.append(person)
}
2> 獲取 (四步)
1幅疼、獲取總代理(appDelegate)和托管對象總管(managedObjectContext )
let appDelegate = UIApplication.shareApplication().delegate as AppDelegate
let managedObjectContext = appDelegate.manegedObjectContext!
2、建立一個(gè)獲取數(shù)據(jù)請求
let fetchRequest = NSFetchRequest(entityName: "Person")
3昼接、執(zhí)行請求爽篷,獲取數(shù)據(jù)
let fetchedRequest = managedObjectContext.executeFetchRequest(fetchRequest, error: )
4、保存到people慢睡,刷新列表
people = fetchedRequest
例子函數(shù):
func fetchCoreData() {
// 1
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedObjectContext = appDelegate.managedObjectContext
// 2
let fetchRequest = NSFetchRequest(entityName: "Person")
// 3
do {
let fetchedRequest = try managedObjectContext.executeFetchRequest(fetchRequest) as! [NSManagedObject]
// 4
people = fetchedRequest
// 刷新列表
self.tableView.reloadData()
} catch let error {
print("Can't fetch Person CoreData. Error: \(error).")
}
}