Swift使用CoreData

来源:互联网 发布:sql 选取第三大 编辑:程序博客网 时间:2024/05/18 00:24

  • 新建工程
  • 建表并生成文件
  • 使用并保存数据
  • 获取数据
  • 删除数据
  • 更新数据

新建工程

新建一个swift工程,勾选Use Core Data
这里写图片描述

建表并生成文件

找到工程中的(项目名.xcdatamodeld),新建Entity
这里写图片描述
然后选中(项目名.xcdatamodeld),选择Editor->Create NSmanagedObject Subclass…
选择你需要使用的库,点击下一步
这里写图片描述
选择你需要使用的表,点击下一步
这里写图片描述
选择存放位置和编码语言
这里写图片描述
点击完成,工程中会增加两个文件
这里写图片描述
去掉可选类型?
这里写图片描述

使用并保存数据

导入相关库

import CoreData

实例化对象

var resultMode:ResultMode!

保存操作

//缓存池let buffer = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext//设置数据resultMode = NSEntityDescription.insertNewObjectForEntityForName("ResultMode", inManagedObjectContext: buffer) as! ResultMode        resultMode.name = "name"        resultMode.address = "address"        resultMode.content = "content"        resultMode.image = UIImagePNGRepresentation(image)!//转换图片格式//保存do{    try buffer.save()  }catch{    print(error)    return}

获取数据

导入相关库

import CoreData

初始一个空数组

var resultMode:[ResultMode] = []

添加NSFetchedResultsControllerDelegate代理
初始化NSFetchedResultsController

var frc:NSFetchedResultsController!

获取数据

//缓存池let buffer = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext        //使用NSFetchRequest获取数据        let request = NSFetchRequest(entityName: "ResultMode")        let sd = NSSortDescriptor(key: "name", ascending: true)//排序        request.sortDescriptors = [sd]        frc = NSFetchedResultsController(fetchRequest: request, managedObjectContext: buffer, sectionNameKeyPath: nil, cacheName: nil)        frc.delegate = self        //获取数据        do{            try frc.performFetch()            resultMode = frc.fetchedObjects as! [ResultMode]        }catch{            print(error)        }

删除数据

let buffer = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext            let result = frc.objectAtIndexPath(indexPath) as! ResultMode            buffer.deleteObject(result)            do{                try buffer.save()            }catch{                print(error)            }

更新数据

更新数据在获取数据的基础上,把该数据的值修改,再进行save就可以了


写给自己的学习笔记


0 0