iOS: Using MVC where does data saved to the app go?

So I have an app and I want to use MVC principles.

I have a controller than owns a model.

class ViewController:UIViewController {
    var model: Model()

    override func viewDidLoad() {
        getModelData()
    }

}

class ViewController2:UIViewController {
    var model: Model()

    override func viewDidLoad() {
        getModelData()
    }

}

class Model {
    func getModelData() {
        // gets data from a server.
    }
}

When I called getsModelData I get the data from the server. However I don’t want to continue to do this server request every time so I want data so I want to save the data somewhere. As the data is the same I want to save it so both ViewControllers can see it. What is the best practise place to save that data?

I’ve thought about saving it as a static var in Model. This however seems to be using singletons which I have been advised against. This also doesn’t seem, by my understanding, to follow the MVC principles.

I have also thought about saving it as a user default. But again this seems excessive for what it is. And also is there a performance cost to accessing user defaults? I want to access this data allot.


I’m looking for an answer to improve my understanding of MVC and how that works. In my apps I currently save it as a static var but I’m looking to improve my code writing as I am a solo developer.


Edit:
The data i’m looking to save is an array of about 50 Objects. Each Object has few properties (all Strings and Ints). It isn’t massive but i’d prefer not to make database requests each time I use it.

I’m looking to have this data in a cache while the app is running. I’m looking to be editing it from both view controllers.