zoukankan      html  css  js  c++  java
  • [Xcode 实际操作]七、文件与数据-(13)数据持久化存储框架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                 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 }
  • 相关阅读:
    湾区求职分享:三个月刷题拿到 Google offer,欢迎踊跃提问
    【转】关于写书
    【转】真相
    【转】成都的雾霾
    【转】iPhone X
    【转】网络用语
    【转】AlphaGo Zero 和强人工智能
    【转】理性的力量
    【转】旅行的智慧
    【转】我为什么爱猫
  • 原文地址:https://www.cnblogs.com/strengthen/p/10049717.html
Copyright © 2011-2022 走看看