SwiftUI CoreData做个数据收集App实现增删改查(含源码)

看了很多SwiftUI教程,发现很多教程教授的方法都过于复杂。本文将通过实际制作一个收藏夹APP来带领大家快速掌握CoreData的增删改查功能。

41085-4d779bd955a5c471.jpg
主界面
41085-9433cde0866f7afe.jpg
添加数据界面
41085-5272225a802705e4.gif
添加数据
41085-32455d813aeeaf12.gif
删除数据

第一步 创建个项目,勾选UserCoreData

具体步骤可以参考下面文章


第二步,创建个实体(Entity)

Entity(实体)是我们存储数据容器,您可以简单将entity理解成excel中的一张表。实体看上去是一张表,但是本身却包含很多属性,通过实体我们可以很多复杂的操作。例如我们可以将我们喜欢的资料或诗歌存储在一个收藏夹子实体中。

CoreData基础知识请参考《SwiftUI CoreData入门概念和基础大全》

下面我们就在xcode中创建个收藏夹实体(bookmark)


41085-aa4fe52f5ad78d73.png
image.png

为了存储我们的收藏资料,我为bookmark实体设计个四个字段:

  • bid 字段,用于唯一辨识每个资料,bid字段类型设置UUID
  • title字段,用于存储资料的标题,title字段类型设置为string
  • category, 用于存储资料类型,category字段类型设置为string
  • brief字段,用于存储资料的详细内容或备注,brief字段类型设置为string

第三步 制作个管理实体的对象Context

Entity实体我们已经制作好了,下面再制作个NSManagedObjectContext(下面简称“context”)。context用于维护和监控object变化的对象,coredata先将entity转化为object,然后交给context进行管理。由于我们经常要使用context,每次写一堆代码比较麻烦,因此我们使用extentsion来将代码进行一下简单的封装。

import UIKit
import CoreData

extension NSManagedObjectContext {
    
    static var current: NSManagedObjectContext {
        let appDelegate = UIApplication.shared.delegate as! AppDelegate
        return appDelegate.persistentContainer.viewContext
    }
    
}

第四步 完成增删改查功能

1、先创建CDHelper.swift文件用于处理增删改成内容


41085-23a11660d81f1d96.png
image.png

2、增删该查
(1) 使用CoreData增加数据

 //存储资料
    static func saveMark(bid:UUID,title:String,category:String,breif:String){
        let mark = Bookmark(context: NSManagedObjectContext.current)
        mark.bid = UUID()
        mark.title = title
        mark.category = category
        mark.brief = breif
        do{
            try NSManagedObjectContext.current.save()
        } catch let error as NSError {
            print(error)
        }
    }

(2) 删除全部数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知识大胖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值