Swift CoreData 基础向

创建项目使用coredata模版

框架创建

lifetrip.xcdatamodeld
Persistence.swift

使用

lifetrip.xcdatamodeld 添加实体

添加实体

  1. coredata保存与查询
    代理注入环境
    1
    2
    ContentView()
    .environment(\.managedObjectContext, PersistenceController.shared.container.viewContext)
初始化查询
1
2
3
4
5
6
@Environment(\.managedObjectContext) private var viewContext

@FetchRequest(
sortDescriptors: [NSSortDescriptor(keyPath: \FootmarkEntity.startTime, ascending: false)],
animation: .default)
private var footmarks: FetchedResults<FootmarkEntity>
保存(新增)viewContext.save()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private func addItem() {
withAnimation {
let newItem = FootmarkEntity(context: viewContext)
// 实体赋值
let randomNumber:Int = Int(arc4random() % 100) + 1
newItem.id = String(randomNumber);
newItem.endTime = Date()
newItem.startTime = Date()
// 保存
do {
try viewContext.save()
} catch {
let nsError = error as NSError
fatalError("添加失败 \(nsError), \(nsError.userInfo)")
}
}
}
  1. 预览模式
    代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    struct LabelView_Previews: PreviewProvider {
    static var previews: some View {
    let labelEntity: LabelEntity = { () -> LabelEntity in
    let labelEntity = LabelEntity(context: PersistenceController.preview.container.viewContext)
    labelEntity.picture = UIImage(named: "nekosensei")!.pngData()
    return labelEntity
    }()
    return LabelCardView(labelEntity: labelEntity)
    }
    }
发布于

2021-06-15

更新于

2021-06-15

许可协议

评论

:D 一言句子获取中...

加载中,最新评论有1分钟缓存...