新增一個Entity, 然後加入兩個 Attitute...
import CoreData 很重要
import CoreData
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 存入的動作
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
// forEntityName -> entity name
let newuser = NSEntityDescription.insertNewObject(forEntityName: "Users", into: context)
// forKey -> attitute name
newuser.setValue("Ken", forKey: "username")
do{
try context.save()
print("Save!!")
}catch{
print("Could not be saved")
}
// 取出的動作
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")
request.returnsObjectsAsFaults = false
do{
let results = try context.fetch(request)
if results.count > 0{
for result in results as! [NSManagedObject]{
if let username = result.value(forKey: "username") as? String{
print(username)
}
}
}
}catch{
print("Could not fetch entity")
}
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
--------------------------------------------------------
加入 查詢條件
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")
request.predicate = NSPredicate(format: "username = %@", "Tommy")
request.returnsObjectsAsFaults = false
do{
let results = try context.fetch(request)
if results.count > 0{
for result in results as! [NSManagedObject]{
if let username = result.value(forKey: "username") as? String{
print(username)
}
}
}
}catch{
print("Could not fetch entity")
}
加入修改的動作
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")
//request.predicate = NSPredicate(format: "username = %@", "Tommy")
request.returnsObjectsAsFaults = false
do{
let results = try context.fetch(request)
if results.count > 0{
for result in results as! [NSManagedObject]{
if let username = result.value(forKey: "username") as? String{
result.setValue("BiBi", forKey: "username")
do{
try context.save()
}catch{
print("Save item ")
}
}
}
}
}catch{
print("Could not fetch entity")
}
刪除資料
也是套用
查詢的條件 加上 context.delete(MsManageObject) 和 context.save()
沒有留言:
張貼留言