我使用SQLite.swift創建了一個 SQLite 連接,但我不確定將資料庫連接存盤在哪里,因此我可以在用戶在各種視圖中打開應用程式期間使用它。
UserDefaults在這里使用是否合適?或者EnvironmentObject?
在保持資料庫連接打開以供重用方面,iOS 應用程式的建議是什么?
uj5u.com熱心網友回復:
在這里使用 UserDefaults 是否合適?
當然不。就像您自己說的:您希望它在應用程式打開時存在。UserDefaults 用于在應用程式未運行時要存盤的內容。
還是環境物件?
你可以,但在語意上它仍然是錯誤的:Apple 將其定義為“父視圖或祖先視圖提供的可觀察物件的屬性包裝型別。”,這并不真正適合資料庫連接。它不是具有狀態的可觀察物件。
理想情況下,您退后一步,查看應用程式的更通用架構。
- 視圖需要特定格式的資料。他們不在乎資料來自哪里。
- 資料來自 DB 的事實是一個實作細節- 明天您可能決定從遠程服務器檢索它,并且您不想因此更改每個視圖。
所以你真正想要的是
- 視圖與某種“資料提供者”介面進行對話,該介面定義了一個介面,視圖可以通過該介面獲取資料,而不管資料存盤在哪里。
- 您對“資料提供者”的實作是與本地資料庫對話(目前,但它可以根據您的需要進行更改)。
在這種結構中,資料庫連接由資料提供者管理,不需要與任何人共享。并且您的視圖實際上將使用 Observable 物件,除了那些 observable 物件本身是資料,而不是與資料庫的連接(實際上視圖不會“知道”資料來自哪里)。
我不會詳細介紹如何實作該模型——這里還有許多其他細節(比如你的應用程式的整體架構),但這是這個想法的要點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/360587.html
標籤:ios 迅速 sqlite.swift
上一篇:使用Swift5.5進行方法混合
