zoukankan      html  css  js  c++  java
  • [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 }
  • 相关阅读:
    读书笔记——吴军《态度》
    JZYZOJ1237 教授的测试 dfs
    NOI1999 JZYZOJ1289 棋盘分割 dp 方差的数学结论
    [JZYZOJ 1288][洛谷 1005] NOIP2007 矩阵取数 dp 高精度
    POJ 3904 JZYZOJ 1202 Sky Code 莫比乌斯反演 组合数
    POJ2157 Check the difficulty of problems 概率DP
    HDU3853 LOOPS 期望DP 简单
    Codeforces 148D. Bag of mice 概率dp
    POJ3071 Football 概率DP 简单
    HDU4405 Aeroplane chess 飞行棋 期望dp 简单
  • 原文地址:https://www.cnblogs.com/strengthen/p/10049777.html
Copyright © 2011-2022 走看看