美文网首页
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

    CoreData的基本操作CoreData .png

  • CoreData的基本操作

    CoreData 的基本操作

  • CoreData基本操作

    使用CoreData数据存储的基本操作如下: 1.初始化 2.添加数据 3.删除数据 4.修改数据 5.使用排序和...

  • CoreData基本操作封装

    本文仅对CoreData的增、删、该、查操作做简单封装。之所以说是简单封装,是因为本次封装不涉及多线程。思路:创建...

  • CoreData数据库操作关联操作

    CoreData数据库操作关联操作

  • coreData的基本使用

    CoreData 进行增删改查的时候常用的类:NSEntityDescription: 获取实体对象NSFetch...

  • CoreData的基本认识

    CoreData和我们的Sqlite是不冲突的,都是数据持久化用的,开发商不一样。Sqlite是C级的,是属于开源...

  • CoreData基本使用

    前几天项目里面加入了CoreData,第一次用,记录一下,这里只记录创建项目之后添加的CoreData。demo地...

  • CoreData 基本使用

    创建一个模型文件(相当于创建了一个数据库) 创建一个实体就相当于创建了一张表(在attribut添加属性) 创建一...

  • CoreData常用操作

    CoreData核心类 NSManagedObjectContext托管对象上下文,像一个老管家,负责大多数数据的...

网友评论

      本文标题:CoreData的基本操作

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