[Xcode 实际操作]七、文件与数据-(13)数据持久化存储框架CoreData的使用:编辑CoreData中的数据
本文将演示如何修改数据持久化对象。
在项目导航区,打开视图控制器的代码文件【ViewController.swift】
1 import UIKit 2 //引入数据持久化存储框架【CoreData】 3 import CoreData 4 5 class ViewController: UIViewController { 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 // Do any additional setup after loading the view, typically from a nib. 10 11 //获得当前程序的应用代理对象 12 let appDelegate:AppDelegate = UIApplication.shared.delegate as! AppDelegate 13 //通过应用代理对象,获得管理对象上下文 14 let managedObjectContext = appDelegate.persistentContainer.viewContext 15 16 //通过管理对象上下文,根据实体的名称,获得实体对象 17 let entity:NSEntityDescription? = NSEntityDescription.entity(forEntityName: "User", 18 in: managedObjectContext) 19 20 //创建一个数据提取请求对象 21 let request:NSFetchRequest = NSFetchRequest<User>(entityName: "User") 22 //设置提取数据的偏移值 23 request.fetchOffset = 0 24 //设置提取数据的数量 25 request.fetchLimit = 10 26 //设置需要提取数据的实体对象 27 request.entity = entity 28 29 //添加一条异常捕捉语句,用于执行数据的查询和编辑操作 30 do 31 { 32 //使用try语句,执行管理对象上下文的数据提取操作, 33 //并把提取的结果,存储在一个数组中 34 let results:[AnyObject]? = try managedObjectContext.fetch(request) 35 //创建一个循环语句,对提取结果进行遍历操作 36 for user:User in results as! [User] 37 { 38 //同时在循环语句中,更改实体的用户名属性 39 user.userName = "Peter" 40 } 41 42 //执行管理对象上下文的数据存储操作,保存编辑之后的结果 43 try managedObjectContext.save() 44 45 //使用try语句,执行管理对象上下文的数据提取操作, 46 //重新提取编辑后的数据 47 let results2:[AnyObject]? = try managedObjectContext.fetch(request) 48 //创建一个循环语句,对新的提取结果进行遍历操作 49 for user:User in results2 as! [User] 50 { 51 //在控制台打印输出相关日志 52 print("userName=\(user.userName!)") 53 print("password=\(user.password!)") 54 } 55 } 56 catch 57 { 58 print("Failed to modify data.") 59 } 60 } 61 62 override func didReceiveMemoryWarning() { 63 super.didReceiveMemoryWarning() 64 // Dispose of any resources that can be recreated. 65 } 66 }