iT邦幫忙

2022 iThome 鐵人賽

DAY 15
0

前言

關於今天的主題,有些複雜,我還在研究如何自訂義的去使用它,這篇只會稍稍介紹 Xcode 所提供的範例大概是如何運行的。

CoreData

Persist or cache data on a single device, or sync data to multiple devices with CloudKit.
CoreData 官方文件

首先大家可以開一個新的專案。
接著把 Use CoreData 勾起來。

打開後將其運行會發現以下版面,可以做出新增及編輯刪除的操作。

含有 CoreData 的專案,會預設幫你將相關的程式碼寫在 Persistence 中。

CoreData 的設定及資料如下圖所示:

可以自行新增 Entities/Attribute/Relationships...
這邊預設範例是只有 timestamp 的部分。

在 ContentView 程式碼上方有宣告->要求取得資料並讀取(查詢)

@FetchRequest()
//並取得Item.timestamp內容(此內容在 coredatamodel 中可以設定)

接著看新增跟刪除的函式:

private func addItem() {
        withAnimation {
            let newItem = Item(context: viewContext)
            newItem.timestamp = Date()

            do {
                try viewContext.save()
            } catch {
                let nsError = error as NSError
                fatalError("Unresolved error \(nsError), \(nsError.userInfo)")
            }
        }
    }

private func deleteItems(offsets: IndexSet) {
        withAnimation {
            offsets.map { items[$0] }.forEach(viewContext.delete)
            do {
                try viewContext.save()
            } catch {
                let nsError = error as NSError
                fatalError("Unresolved error \(nsError), \(nsError.userInfo)")
            }
        }
    }

由 viewContext 參數來運行,並用 .save 存取到資料庫。
viewContext 是宣告在 Persistence 中的 nsManagedObjectContext,而它是用來讀取你在 CoreDataModel 中的設定。

.delete 刪除資料。


今天就到這邊啦~
大家一起來探索 SwiftUI ~感謝閱讀


延伸閱讀

其他網路上詳細的教學文章1
其他網路上詳細的教學文章2
名詞介紹


上一篇
[Day14] 輪播圖片怎麼實現?|SwiftUI 的簡易練習
下一篇
[Day16] 將檔案放到 Github 上吧~|Xcode 中的版本控制
系列文
新手學 Swift UI 與 Android Studio 的學習路程 -- 跟著我們一起踏上 App 開發之旅吧~30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言