Как установить и получить данные в классе модели? - PullRequest
0 голосов
/ 26 октября 2018

Я хочу установить данные в классе модели и получить данные из класса модели. Я не знаю много о 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)
            }
        }

Ниже приведен мой View View Controller.

       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)
        }
    }

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Вы можете использовать singleton design для назначения и доступа к вашей модели в любом месте вашего модуля.

Приведенный ниже код может помочь вам

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.

0 голосов
/ 26 октября 2018

Поскольку модель содержит множество параметров, вам не нужно инициализировать класс модели со всеми свойствами в методе 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)")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...