zoukankan      html  css  js  c++  java
  • [Xcode 实际操作]七、文件与数据-(12)数据持久化存储框架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         self.addUser()
    12         
    13         //获得当前程序的应用代理
    14         let appDelegate:AppDelegate = UIApplication.shared.delegate as! AppDelegate
    15         //通过应用代理对象,获得管理对象上下文
    16         let managedObjectContext = appDelegate.persistentContainer.viewContext
    17         
    18         //通过管理对象上下文,根据实体的名称,获得实体对象
    19         let entity = NSEntityDescription.entity(forEntityName: "User",
    20                                                 in: managedObjectContext)
    21         
    22         //创建一个数据提取请求对象
    23         let request = NSFetchRequest<User>(entityName: "User")
    24         //设置提取数据的偏移值
    25         request.fetchOffset = 0
    26         //设置提取数据的数量
    27         request.fetchLimit = 10
    28         //继续设置需要提取数据的实体对象
    29         request.entity = entity
    30         
    31         //然后创建一个谓词对象,设置提取数据的查询条件。
    32         //谓词被用来指定数据被获取,或者过滤的方式
    33         let predicate = NSPredicate(format: "userName= 'John' ", "")
    34         //设置数据提取请求对象的谓词属性
    35         request.predicate = predicate
    36         
    37         //添加一条异常捕捉语句,用于执行数据的查询操作
    38         do{
    39             //使用try语句,执行管理对象上下文的数据提取操作,
    40             //并把提取的结果,存储在一个数组中
    41             let items = try managedObjectContext.fetch(request)
    42             //创建一个循环语句,对提取结果进行遍历操作
    43             for user:User in items 
    44             {
    45                 //在控制台打印输出相关日志
    46                 print("userName=(user.userName!)")
    47                 print("password=(user.password!)")
    48             }
    49             
    50         }
    51         catch{
    52             print("获取数据失败。")
    53         }
    54     }
    55     
    56     func addUser()
    57     {
    58         //获得当前程序的应用代理
    59         let appDelegate:AppDelegate = UIApplication.shared.delegate as! AppDelegate
    60         //通过应用代理对象,获得管理对象上下文
    61         let managedObjectContext = appDelegate.persistentContainer.viewContext
    62         
    63         //通过管理对象上下文,插入一条实体数据
    64         let newUser = NSEntityDescription.insertNewObject(forEntityName: "User", 
    65                         into: managedObjectContext) as! User
    66         
    67         //设置实体的用户名属性的内容
    68         newUser.userName = "John"
    69         //设置实体的密码属性的内容
    70         newUser.password = "123456"
    71         
    72         //添加一条异常捕捉语句,用于执行数据的插入操作
    73         do
    74         {
    75             //使用try语句,执行管理对象上下文的存储操作,插入实体对象
    76             try managedObjectContext.save()
    77             //在控制台打印输出日志
    78             print("Success to save data.")
    79         }
    80         catch
    81         {
    82             print("Failed to save data.")
    83         }
    84     }
    85     override func didReceiveMemoryWarning() {
    86         super.didReceiveMemoryWarning()
    87         // Dispose of any resources that can be recreated.
    88     }
    89 }
  • 相关阅读:
    软工个人阅读作业3
    阅读作业2
    代码复审
    pair project elevator
    读《移山之道——VSTS软件开发指南》
    软件工程作业--词频统计
    个人阅读作业3
    个人阅读作业2
    代码复审
    结对项目电梯吐血总结
  • 原文地址:https://www.cnblogs.com/strengthen/p/10049628.html
Copyright © 2011-2022 走看看