Я хочу установить данные в классе модели и получить данные из класса модели. Я плохо разбираюсь в MVC, но хочу изучить его. Когда я получаю данные в этот раз, он отображается пустым. как я могу получить доступ к данным? Пожалуйста, дайте мне какое-нибудь решение для этого.
Ниже моя модель:
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
}
}
Ниже мой набор данных 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.
init
. Необязательные значения никогда не вызывают сбоя. Удалите восклицательные знаки. И в большинстве случаев вам не нужно наследование от NSObject и часто даже не класса. И, пожалуйста, соблюдайте соглашение об именах, что имена переменных - lowerCamelCased