为有牺牲多壮志,敢教日月换新天。

[Xcode 实际操作]七、文件与数据-(13)数据持久化存储框架CoreData的使用:编辑CoreData中的数据

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

目录:[Swift]Xcode实际操作

本文将演示如何修改数据持久化对象。

在项目导航区,打开视图控制器的代码文件【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 }

 

posted @ 2018-12-01 15:48  为敢技术  阅读(152)  评论(0编辑  收藏  举报