首先,我在ios上比較新,並且沒有使用移動數據庫的經驗。我是否應該使用Realm倉庫(ios)
想要集成到我的應用Realm(swift),並想知道服務層和存儲庫是分開還是一切都包含在服務中是有意義的。
舉一個例子來看看。
class UserService {
var userRepository: UserRepository!
func findById(userId: String) -> User? {
return userRepository.findById(userId: userId)
}
}
class UserRepository {
private let realm = try! Realm()
func findById(userId: String) -> User? {
return realm.object(ofType: User.self, forPrimaryKey: userId)
}
}
我想更多關於哪種方式(模式)更方便您好Tim,我知道您已經爲Realm團隊工作過對於第一點,你對這種情況推薦什麼: 你有一個在其他地方被刪除的Realm對象,但是你試圖訪問它並且會崩潰,因爲一旦它將不再在Realm中。我只是想着做點類似於你在第一點中描述的事情,但現在我讀到它可能不值得。我想使用一個通用的存儲庫,我猜想我使用了領域和類型依賴注入。 – Cyupa
Hi @Cyupa!如果你有兩個Realm'Object'實例指向磁盤上的同一個對象,如果你刪除了這個對象的一個實例,另一個實例將自動失效,你將不能再從它讀取數據。這實際上取決於'爲什麼'要保留刪除後的數據,但對於進行內存複製仍然是一個可接受的折衷方案。 – TiM
Hi @TiM,一個小細節:我們應該在應用程序中保留一個「Realm」還是爲每個存儲庫或擴展方法創建此類? 私人讓realm =試試吧! Realm() –