プログラマーです。雑記系、プログラミング系、投資系の記事を書いています!

CoreDataでのデータ追加

どうも名探偵です。

本日は、SwiftUIのCoreDataの謎を解き明かしていきます。

 

CoreDataの概要

CoreDataでデータ保存することができます。

例えば、Swiftは何かListに文字を追加してアプリを落とすと、そのデータは消えてしまいます。

なぜなら、保存機能がないからです。しかし、CoreDataを使えばアプリを落としても消えません

 

CoreDataの設定

では、CoreDataへの追加を解説していきます.。

まずは、プロジェクトを作成するときに必ずCoreDataにチェックを入れましょう!

入れなくてもできないことはないが色々とめんどくさいので…

次はテーブルを作っていきます。

プロジェクトを開き、左のところで、「プロジェクト名.xcdatamodeld」を開きテーブルを作成する。

手順

1. Add Entityを押して名前を決める。

2. Attributeのしたの「+」を押して名前を決める

3. Typeを「String」にする。

 

CoreDataのコード

これで準備は整いました。では、コードの方を載せます。

import SwiftUIimport CoreDatastruct ContentView: View {    @State private var text = ""        //保存処理    @Environment(\.managedObjectContext) var test: NSManagedObjectContext        //読み込み    @FetchRequest(entity: Entity.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \Entity.test, ascending: true)]) var fetch01:FetchedResults<Entity>    var body: some View {        VStack {            TextField("入力", text: $text)                .textFieldStyle(RoundedBorderTextFieldStyle())                .padding()                //データ保存                Button(action: {                    let testsave = Entity(entity: Entity.entity(), insertInto: self.test)                    testsave.test = String(self.text)                    try! self.test.save()                }) {                    Text("保存")                }            List {                ForEach(fetch01,id: \.self) { ent02 in                    Text(ent02.test!.description)                }            }        }    }}

まずは、CoreDataをインポートします。testはAttributeのString型の名前EntityはEntity名

これを当てはめていけば、できると思います。正直言うと難しくて解説があまりできません。

すみません´д` ;

このコードの動き

まず、TextFieldに文字を入力し保存ボタンを押下するとListに文字が追加されます。

ここでアプリを再起動しても文字はそのままList上にあります。

まとめ

以上でCoreDataへの追加は終わります。自分自身まだまだ理解ができていないので、

わかったことがあればその都度更新していきますのでよろしくお願いいたします!

また、そのうちデータを消す処理とかも考えて、上手くいけば記事に

あげますので、またよろしくお願いいたします。

最新情報をチェックしよう!
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments