簡體   English   中英

在哪里存儲與 iOS 的 SQLite DB 連接?

[英]Where to store a SQLite DB connection with iOS?

我用SQLite.swift創建了一個 SQLite 連接,但我不確定在哪里存儲數據庫連接,因此我可以在用戶擁有各種視圖的應用程序持續時間內使用它。

在這里使用UserDefaults是否合適? 還是EnvironmentObject

iOS 應用程序在保持數據庫連接打開以供重用方面的建議是什么?

在這里使用 UserDefaults 是否合適?

當然不。 就像您自己說的:您希望它在應用程序打開時存在。 而 UserDefaults 用於在應用程序未運行時要存儲的內容。

還是環境對象?

可以,但從語義上講它仍然是錯誤的:Apple 將其定義為“由父視圖或祖先視圖提供的可觀察 object 的屬性包裝器類型。”,這並不真正適合數據庫連接。 它不是帶有狀態的可觀察 object。

理想情況下,您退后一步,看看您的應用程序的更通用架構。

  • 視圖需要特定格式的數據 他們不在乎數據來自哪里。
  • 數據來自數據庫這一事實是一個實現細節——明天您可能決定從遠程服務器檢索它,並且您不想因此而更改每個視圖。

所以你真正想要的是

  • View 與某種“數據提供者”接口進行對話,該接口定義了一個接口,無論數據存儲在哪里,視圖都可以通過該接口獲取數據。
  • 您對“數據提供者”的實現是與本地數據庫對話(目前,它可以根據您的需要進行更改)。

在這種結構中,數據庫連接由數據提供者管理,不需要與任何人共享。 而且您的視圖實際上將使用 Observable 對象,除了那些可觀察對象是數據本身,而不是與數據庫的連接(實際上視圖不會“知道”數據來自哪里)。

我不會 go 詳細介紹如何使 model 發生 - 這里還有許多其他細節(比如你的應用程序的整體架構是什么),但這是這個想法的要點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM