[Xcode 實際操做]7、文件與數據-(12)數據持久化存儲框架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         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 }
相關文章
相關標籤/搜索