Ios 如何在模型类中设置和获取数据?
我想在模型类中设置数据,并从模型类中获取数据。我对MVC知之甚少,但我想学习它。当我获取数据时,它显示为空。 如何访问数据? 请给我任何解决办法 以下是我的模型:Ios 如何在模型类中设置和获取数据?,ios,swift,model-view-controller,Ios,Swift,Model View Controller,我想在模型类中设置数据,并从模型类中获取数据。我对MVC知之甚少,但我想学习它。当我获取数据时,它显示为空。 如何访问数据? 请给我任何解决办法 以下是我的模型: class Model: NSObject { var RTC_minute:String! var RTC_hour:String! var RTC_day:String! var RTC_year:String! var Flag:String!
class Model: NSObject {
var RTC_minute:String!
var RTC_hour:String!
var RTC_day:String!
var RTC_year:String!
var Flag:String!
init(RTC_minute:String, RTC_hour:String, RTC_day:String, RTC_year:String, Flag:String) {
self.RTC_minute = RTC_minute
self.RTC_hour = RTC_hour
self.RTC_day = RTC_day
self.RTC_year = RTC_year
self.Flag = Flag
}
}
下面是我的set data viewController:
class viewController:UIViewControoler {
var holidayData: Model = Model(RTC_minute:"", RTC_hour:"", RTC_day:"", RTC_year:"", Flag:"")
override func viewDidLoad() {
super.viewDidLoad()
holidayData?.RTC_minute = "0x55"
holidayData?.RTC_hour = "0x21"
holidayData?.RTC_day = "0x13"
holidayData?.RTC_year = "0x20"
print(holidayData?.RTC_minute as Any)
}
}
下面是我的获取数据视图控制器
class ViewController:UIViewController {
var holidayData: Model = Model(RTC_minute:"", RTC_hour:"", RTC_day:"", RTC_year:"", Flag:"")
override func viewDidLoad() {
super.viewDidLoad()
print(holidayData?.RTC_minute)
print(holidayData?.RTC_hour)
print(holidayData?.RTC_day)
print(holidayData?.RTC_year)
}
}
由于模型包含大量参数,因此不必在init(:)方法中使用所有属性初始化模型类 将模型更改为此格式
class Model: NSObject {
var RTC_minute:String!
var RTC_hour:String!
var RTC_day:String!
var RTC_year:String!
var Flag:String!
override init() {
self.RTC_minute = ""
self.RTC_hour = ""
self.RTC_day = ""
self.RTC_year = ""
self.Flag = ""
}
init(_ dict: [String: Any]?) {
self.RTC_minute = dict?["RTC_minute"] as? String ?? ""
self.RTC_hour = dict?["RTC_hour"] as? String ?? ""
self.RTC_day = dict?["RTC_day"] as? String ?? ""
self.RTC_year = dict?["RTC_year"] as? String ?? ""
self.Flag = dict?["Flag"] as? String ?? ""
}
}
现在,您可以使用
let apiResponseData = //Data from API Response and formatted with JSONSerialization
let model = Model(apiResponseData)
//For dummy model with empty values, here we no need to worry about nil values
let model = Model()
//Accessing the model
print("RTC_ minute: \(model.RTC_minute)")
您可以使用单例设计在模块中的任何位置分配和访问模型 下面的代码可能会对您有所帮助
final class MainDataStore {
static let sharedInstance = MainDataStore()
var RTC_minute:String!
var RTC_hour:String!
var RTC_day:String!
var RTC_year:String!
}
使用以下方法指定值
MainDataStore.sharedInstance.holidayData?.RTC_minute = "0x55"
并检索值
var value = MainDataStore.sharedInstance.holidayData?.RTC_minute
注意-上述代码是为了满足@vikas要求。Never、Never、Never将属性声明为隐式未包装可选属性,这些属性在init
方法中使用非可选值初始化。非可选值不会导致崩溃。删除感叹号。在大多数情况下,您不需要从NSObject继承,通常甚至不需要类。请遵守变量名小写的命名约定