Aus*_*n E 5 xcode singleton realm ios swift
阅读本教程后,我需要一些帮助来了解最有效的方法.
当我的应用程序打开时,它需要加载一个Profile对象.由于在应用程序的生命周期中应该只有其中一个,我将其设置为单例.
Realm似乎是保存和检索数据的好方法.进一步查看后,似乎我需要有一个数据模型才能使用Realms.在尝试集成Object到下面显示的Profile.swift 失败后,我需要一些帮助来解决这个问题.我应该创建一个ProfileDataModel可以通过Profile检索和保存更改来调用的第二个类,还是有办法将Realm Object包含在Singleton类中?
Profile.swift
class Profile {
//MARK: Singleton
static let sharedInstance = Profile()
//MARK: Properties
var characterName: String
var level: Int
//MARK: Init
private init() {
//TODO: Load from realms
self.characterName = "John Appleseed"
self.level = 50
}
//MARK: Helper Methods
static func save(){
//TODO: Save to Realm
}
}
Run Code Online (Sandbox Code Playgroud)
Sae*_*nia 10
我建议您创建一个db manager类来处理它上面的所有数据库操作,然后您可以单独创建数据模型并使用您的manager类来获取/存储数据库上的数据.
class DBManager {
//MARK: Singleton
static let sharedInstance = DBManager()
//MARK: Init
private override init(){
let config = Realm.Configuration(
fileURL: dbPath,
readOnly: false)
do{
myDB = try Realm(configuration: config)
print(dbPath)
}
catch{
print("boooom")
}
}
//retrive data from db
func getDataFromDB() -> Results<DataModel>{
let results: Results<NewsModel> = myDB.objects(DataModel)
return results
}
//write an object in db
func addDataModelEntry(object: DataModel){
try! myDB.write{
myDB.add(object, update: true)
}
}
}
//your controller you want to use your db manager class
class main(){
func viewDidLoad(){
DBManager.sharedInstance.getDataFromDB() ///here you have realm results
DBManager.sharedInstance.addDataModelEntry(customDataModel) //to store your object on db
}
}
Run Code Online (Sandbox Code Playgroud)
我只是为了说明做的方式而放置了一些示例,您可以使用这些函数扩展到任何类型的数据库操作以满足您的特定需求.
| 归档时间: |
|
| 查看次数: |
4852 次 |
| 最近记录: |