/ / Jak poprawnie MVC CoreData i NSDefaults - szybkie, podstawowe dane, kontroler widoku modelu, nsuserdefault

Jak prawidłowo MVC CoreData i NSDefaults - szybkie, podstawowe dane, model-widok kontroler, nsuserdefaults

Mam szybki plik o nazwie DataModel.swift, który przechowuje strukturę.

Mój viewController.swift inicjuje zmienną typu struct z DataModel.swift. Dzięki tej zmiennej mogę użyć DataModel.swift, aby uzyskać wartości, obliczyć i wrócić do ViewController.swift

Jak dotąd działa dobrze. Ale za każdym razem, gdy viewController.swift inicjuje strukturę, resetuje również strukturę. Chciałbym, aby te dane strukturalne były trwałe, więc gdy użytkownik wróci, wyniki będą nadal dostępne.

Jaki byłby najlepszy sposób na rozwiązanie tego?

Używać podstawowych danych? Używać NSUserDefaults?

Wiem, jak przechowywać / czytać dane w InternecieViewController korzystający z podstawowych danych lub NSUserDefaults, ale obawiam się, że jeśli to zrobię, skończę z całym kodem ViewController, który nie brzmi dla mnie MVC.

A może istnieje sposób przechowywania, ładowania i obliczania wartości, które utrzymują kod w moim pliku DataModel.swift?

Niektóre próbki kodu są poniżej.

Poniżej przedstawiono inicjalizację struktury ViewController.swift:

var calculations = ConcreteModel(
width: 0,
length: 0,
thickness: 0,
pricePerCubicMetre: 0,
unit: "metric")

Poniżej plik DataModel.swift:

struct ConcreteModel {
var width: Double
var length: Double
var thickness: Double
var pricePerCubicMetre: Double
var unit: String

init (
width: Double,
length: Double,
thickness: Double,
pricePerCubicMetre: Double, unit: String){

self.width = width
self.length = length
self.thickness = thickness
self.pricePerCubicMetre = pricePerCubicMetre
self.unit = unit
}

func gotVolume () -> Bool {
return false
}
}

func getVolume () -> Double {
return calculation
}

func getCost () -> Double {
return calculation
}
}

Odpowiedzi:

0 dla odpowiedzi № 1

Myślenie jest na właściwej drodze. Umieść kod trwałości swojego wyboru w DataModel klasa.