[Xcode 实际操做]7、文件与数据-(14)数据持久化存储框架CoreData的使用:删除CoreData中的数据

目录:[Swift]Xcode实际操做html

本文将演示如何删除数据持久化对象。swift

在项目导航区,打开视图控制器的代码文件【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                 managedObjectContext.delete(user)
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         }
57         catch
58         {
59             print("Failed to modify data.")
60         }
61     }
62     
63     override func didReceiveMemoryWarning() {
64         super.didReceiveMemoryWarning()
65         // Dispose of any resources that can be recreated.
66     }
67 }
相关文章
相关标签/搜索