如果我遵循MVC并通过RealmSwift持久化数据,swift模型类会是什么样子?
我是Swift的新手,我正在开发一个只用于练习的待办应用程序。在这个应用程序中,数据是使用RealmSwift持久化的,我试图遵循MVC设计模式。然而,我得到一个建议,类模型缺乏逻辑,需要调整。请给我一些建议,以改善我的代码。 在我的主Viewcontroller中,我创建了这些变量来持久化数据如果我遵循MVC并通过RealmSwift持久化数据,swift模型类会是什么样子?,swift,model-view-controller,design-patterns,realm,Swift,Model View Controller,Design Patterns,Realm,我是Swift的新手,我正在开发一个只用于练习的待办应用程序。在这个应用程序中,数据是使用RealmSwift持久化的,我试图遵循MVC设计模式。然而,我得到一个建议,类模型缺乏逻辑,需要调整。请给我一些建议,以改善我的代码。 在我的主Viewcontroller中,我创建了这些变量来持久化数据 let realm = try! Realm() var itemList : Results<Item>! 以下是我的数据模型: import Foundation import Re
let realm = try! Realm()
var itemList : Results<Item>!
以下是我的数据模型:
import Foundation
import RealmSwift
class Item : Object {
@objc dynamic var title : String = ""
@objc dynamic var done : Bool = false
@objc dynamic var note: String = ""
@objc dynamic var dateCreated : Date?
convenience init(title: String, note: String) {
self.init()
self.title = title
self.note = note
self.dateCreated = Date()
self.done = false
}
}
据我所知,MVC中的模型应该包含数据类和所有操作数据的方法,但我不知道如何重新构造代码。这是我的全部代码
谢谢您的时间,如果有人能帮助我,我将不胜感激。这是一个非常有趣的问题 基本上,模型应该只包含属性 因此,它只能用作“存储” 操作模型的方法应该放在代码的“控制器”部分 但请不要像某些教程那样将其放在ViewController中。这是一种非常糟糕的做法,应该避免保持体系结构干净(如果MVC是干净的(只是一个玩笑))。创建一个新类,如ItemManager,它将处理模型 因此,您的逻辑如下所示:
这种方法将引导您使用更干净的代码和其他一些体系结构(如果需要)这是一个非常有趣的问题 基本上,模型应该只包含属性 因此,它只能用作“存储” 操作模型的方法应该放在代码的“控制器”部分 但请不要像某些教程那样将其放在ViewController中。这是一种非常糟糕的做法,应该避免保持体系结构干净(如果MVC是干净的(只是一个玩笑))。创建一个新类,如ItemManager,它将处理模型 因此,您的逻辑如下所示:
这种方法将引导您使用更干净的代码和一些其他体系结构(如果您需要)您所说的
是什么意思类模型缺乏逻辑
?模型类不应该只包含变量和init吗?我想它应该包含像save方法或delete方法这样的操作数据的方法。不,它不应该,这应该是任何其他组件的工作,无论是viewController、viewModel、realmanager等等,。。。取决于你的应用程序结构,你所做的对我来说似乎很好。我想我明白你的问题了!!。您必须首先创建一个控制器类来管理您的业务逻辑,并包含所有与模型相关的数据,然后您将从那里获取数据,到您的ViewController,您的VC将只有视图逻辑,同样对于处理领域,您应该像Tj3n所说的那样为viewcontroller创建一个realmManager,它将处理所有与领域相关的任务。您所说的是什么意思类模型缺乏逻辑?模型类不应该只包含变量和init吗?我想它应该包含像save方法或delete方法这样的操作数据的方法。不,它不应该,这应该是任何其他组件的工作,无论是viewController、viewModel、realmanager等等,。。。取决于你的应用程序结构,你所做的对我来说似乎很好。我想我明白你的问题了!!。您必须首先创建一个控制器类来管理您的业务逻辑,并包含所有与模型相关的数据,然后您将从那里获取数据,到您的ViewController,您的VC将只有视图逻辑,同样对于处理领域,您应该像Tj3n所说的那样为viewcontroller创建一个realmManager,它将处理所有与领域相关的任务。谢谢您的回答。我只是在youtube上逛了逛,找到了一个与你的答案类似的教程。例如,我想我应该创建一个名为realmanager的类,并将所有的操纵数据方法放在该类中。谢谢你的帮助:)@TrungLe欢迎你!谢谢你的回答。我只是在youtube上逛了逛,找到了一个与你的答案类似的教程。例如,我想我应该创建一个名为realmanager的类,并将所有的操纵数据方法放在该类中。谢谢你的帮助:)@TrungLe欢迎你!
import Foundation
import RealmSwift
class Item : Object {
@objc dynamic var title : String = ""
@objc dynamic var done : Bool = false
@objc dynamic var note: String = ""
@objc dynamic var dateCreated : Date?
convenience init(title: String, note: String) {
self.init()
self.title = title
self.note = note
self.dateCreated = Date()
self.done = false
}
}