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

目录:[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                 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 }
原文地址:https://www.cnblogs.com/strengthen/p/10049777.html