Swift使用CoreData

前端之家收集整理的这篇文章主要介绍了Swift使用CoreData前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

新建工程

新建一个swift工程,勾选Use Core Data

建表并生成文件

找到工程中的(项目名.xcdatamodeld),新建Entity

然后选中(项目名.xcdatamodeld),选择Editor->Create NSmanagedObject Subclass…
选择你需要使用的库,点击下一步

选择你需要使用的表,点击下一步

选择存放位置和编码语言

点击完成,工程中会增加两个文件

去掉可选类型?

使用并保存数据

导入相关库

import CoreData

实例化对象

var resultMode:ResultMode!

保存操作

  1. //缓存池
  2. let buffer = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
  3. //设置数据
  4. resultMode = NSEntityDescription.insertNewObjectForEntityForName("ResultMode",inManagedObjectContext: buffer) as! ResultMode
  5. resultMode.name = "name"
  6. resultMode.address = "address"
  7. resultMode.content = "content"
  8. resultMode.image = UIImagePNGRepresentation(image)!//转换图片格式
  9. //保存
  10. do{
  11. try buffer.save()
  12. }catch{
  13. print(error)
  14. return
  15. }

获取数据

导入相关库

import CoreData

初始一个空数组

var resultMode:[ResultMode] = []

添加NSFetchedResultsControllerDelegate代理
初始化NSFetchedResultsController

var frc:NSFetchedResultsController!

获取数据

  1. //缓存池
  2. let buffer = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
  3. //使用NSFetchRequest获取数据
  4. let request = NSFetchRequest(entityName: "ResultMode")
  5. let sd = NSSortDescriptor(key: "name",ascending: true)//排序
  6. request.sortDescriptors = [sd]
  7.  
  8. frc = NSFetchedResultsController(fetchRequest: request,managedObjectContext: buffer,sectionNameKeyPath: nil,cacheName: nil)
  9. frc.delegate = self
  10. //获取数据
  11. do{
  12. try frc.performFetch()
  13. resultMode = frc.fetchedObjects as! [ResultMode]
  14. }catch{
  15. print(error)
  16. }

删除数据

  1. let buffer = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
  2.  
  3. let result = frc.objectAtIndexPath(indexPath) as! ResultMode
  4. buffer.deleteObject(result)
  5.  
  6. do{
  7. try buffer.save()
  8. }catch{
  9. print(error)
  10. }

更新数据

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


写给自己的学习笔记

猜你在找的Swift相关文章