/ / Zmień zmienną statyczną - szybkie, statyczne, zmienne globalne

Zmień zmienną statyczną - szybkie, statyczne, zmienne globalne

Jestem nowy w szybkim tempie. Chciałbym zapytać, czy pójdę właściwą drogą.

Mam coś takiego:

class ViewController: UIViewController {

struct myVars {
var static short_text = ""
}

override func viewDidLoad() {
super.viewDidLoad()
loadData()
println(short_text)
}

func loadData() {
myVars.short_text = "Hello world!"
}
}

Ten kod działa. Mam "Witaj, świecie!" ciąg w zmiennej i mogę go wydrukować. Ale pytam cię, czy jest to dobry i jasny sposób na przedefiniowanie statycznego var? Robię to, ponieważ chcę pracować z tą zmienną w całym kodzie.

Dziękuję Ci za Twoje odpowiedzi.

PS: Ostateczne metody są znacznie trudniejsze. To jest tylko skrót kodu.

Odpowiedzi:

1 dla odpowiedzi № 1

Jeśli masz zamiar wprowadzić zmienną dla tego wystąpienia ViewController dostępne dla innych klas (tj. innych kontrolerów widoku), wtedy nie musisz ich używać static. Musisz tylko użyć static jeśli jest krytyczne, aby udostępnić właściwość w wielu instancjach tej klasy. Nie sądzę, że to właśnie zamierzałeś.

Jeśli celem jest przekazywanie danych między kontrolerami widoku, sugeruję, aby odwołać się do:

Jeśli wyszukujesz "przekazywać dane pomiędzy kontrolerami widoku", znajdziesz wiele innych podobnych linków.

Dolna linia, wykorzystanie static jest możliwe, ale prawdopodobnie nie to, co zamierzałeś.


Dwie uwagi boczne:

  1. Używasz a static w granicach struct. Swift 1.2 eliminuje potrzebę tego wzorca. Jeśli naprawdę potrzebujesz static (i nie sądzę, że potrzebujesz tego tutaj), możesz po prostu zadeklarować swoją zmienną jako static i wyeliminuj struct:

    static var shortText = ""
    
  2. Nie sądzę, żebyś używał struct ma na celu otwarcie dyskusji na temat wartości "od wartości do referencji", ale jeśli tak, mógłbym skierować cię do wideo z WWDC 2015 Budowanie lepszych aplikacji z typami wartości w Swift.