目錄:[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 }