/ / Cambia la variabile statica: rapida, statica, globale

Cambia la variabile statica: rapida, statica, globale

Sono nuovo in fretta. Mi piacerebbe chiederti se vado nel modo giusto.

Ho qualcosa di simile a questo:

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!"
}
}

Questo codice funziona. Ho "Ciao mondo!" stringa nella variabile e posso stamparlo. Ma ti sto chiedendo se questo è un modo valido e chiaro per ridefinire la variabile statica? Lo faccio perché voglio lavorare con questa variabile attraverso il codice.

Grazie per le tue risposte.

PS: I metodi finali sono molto più difficili. Questo è un codice in cortocircuito solo per esempio.

risposte:

1 per risposta № 1

Se il tuo intento è di rendere la variabile per questa istanza di ViewController accessibile ad altre classi (ad esempio altri controller di vista), quindi non è necessario utilizzare static. Hai solo bisogno di usare static se è fondamentale rendere la proprietà accessibile attraverso più istanze di quella classe. Non penso che sia quello che intendevi qui.

Se l'intento è di passare i dati tra i controller della vista, ti suggerisco di fare riferimento a:

Se cerchi "dati di passaggio tra i controller di visualizzazione", troverai molti altri collegamenti simili.

Linea di fondo, l'uso di static è possibile, ma probabilmente non è quello che intendevi.


Due note a margine:

  1. Stai usando un static all'interno di a struct. Swift 1.2 ovvia alla necessità di tale modello. Se hai davvero bisogno static (e non credo che ne hai bisogno qui), puoi semplicemente dichiarare la tua variabile come static ed eliminare il struct:

    static var shortText = ""
    
  2. Non penso al tuo uso di struct significava aprire la discussione "by-value vs by-reference", ma se lo facessi, potrei riferirti al video del WWDC 2015 Creazione di app migliori con tipi di valore in Swift.