美文网首页
CoreData的基本操作

CoreData的基本操作

作者: _弓长_大人 | 来源:发表于2018-09-25 12:43 被阅读7次

    CoreData 的基本操作

    import UIKit
    import CoreData
    
    class ViewController: UIViewController {
    
        @IBOutlet weak var tfAge: UITextField!
        @IBOutlet weak var tfName: UITextField!
        
        // 在相应界面生成一个 全局变量
        let appDelegate = UIApplication.shared.delegate as! AppDelegate
    
        
        // 数据的删除
        @IBAction func del(_ sender: Any) {
        // 获取内容 
            let context = appDelegate.persistentContainer.viewContext
            
            // Person这个数据库
            let request: NSFetchRequest<Person> = Person.fetchRequest()
            
            
            // 查询条件
            request.predicate = NSPredicate(format: "name = %@", tfName.text!)
            
            // 排序。根据名字。年龄排序  true 为 升序  false为 逆序
            let sort1 = NSSortDescriptor(key: "age", ascending: true)
            let sort2 = NSSortDescriptor(key: "name", ascending: false)
            request.sortDescriptors = [sort1,sort2]
            
            if let persons = try? context.fetch(request) {
                for p in persons {
                    // 删除符合 条件的 行
                    context.delete(p)
                    appDelegate.saveContext()
                }
            }
        }
        
        
        
        @IBAction func update(_ sender: Any) {
            let context = appDelegate.persistentContainer.viewContext
            
            let request: NSFetchRequest<Person> = Person.fetchRequest()
            request.predicate = NSPredicate(format: "name = %@", tfName.text!)
            let sort1 = NSSortDescriptor(key: "age", ascending: true)
            let sort2 = NSSortDescriptor(key: "name", ascending: false)
            request.sortDescriptors = [sort1,sort2]
            
            if let persons = try? context.fetch(request) {
                for p in persons {
                    p.age = Int32(tfAge.text!)!
                    appDelegate.saveContext()
                }
            }
        }
        
        
        
        @IBAction func add(_ sender: Any) {
            let context = appDelegate.persistentContainer.viewContext
            
            // 创建一个对象
            let p = Person(context: context)
            p.name = tfName.text!
            p.age = Int32(tfAge.text!)!
            
            appDelegate.saveContext()
        }
        
        
        @IBAction func search(_ sender: Any) {
            let context = appDelegate.persistentContainer.viewContext
            
            
            let request: NSFetchRequest<Person> = Person.fetchRequest()
            
            // 查询条件
            
            request.predicate = NSPredicate(format: "name = %@", tfName.text!)
            let sort1 = NSSortDescriptor(key: "age", ascending: true)
            let sort2 = NSSortDescriptor(key: "name", ascending: false)
            request.sortDescriptors = [sort1,sort2]
            
            
            if let persons = try? context.fetch(request) {
                for p in persons {
                    print("name = \(p.name!) age= \(p.age)")
                }
            }
        }
        
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    
    
    }
    
    
    

    相关文章

      网友评论

          本文标题:CoreData的基本操作

          本文链接:https://www.haomeiwen.com/subject/nixvwxtx.html