Ich bin verwirrt darüber, wie eine globale Variable außerhalb einer Funktion in meinem schnellen Projekt zu deklarieren. Dies ist der Code, den ich mit dem Text einer ausgewählten Reihe von UITableView als die Variable „chosenFeed“ speichern: 1Eine globale Variable in swift während der Verwendung von UITableView deklarieren
Dann versuche ich, diese Variable zu verwenden, um eine URL auf einem anderen View-Controller zu öffnen wie: 2
Ich habe gelernt, dass ich das falsch gemacht habe, weil "selectedFeed" lokal zu dieser Override-Funktion ist. Also habe ich keine Ahnung, wie diese globale Variable deklariert werden soll, auf die von einem anderen VC zugegriffen werden soll. Einige Leute empfohlen structs, also versuchte ich dies in der Tableview VC:
struct GlobalVariable {
static var indexPath = tableView.indexPathForSelectedRow
static var currentCell = tableView.cellForRowAtIndexPath(indexPath!)! as UITableViewCell
static var choosenFeed = tableDict[currentCell.textLabel!.text!]
}
aber das hat nicht funktioniert entweder bc zu viele mehrdeutige Verweise. Irgendwelche Lösungen?
Verwenden Sie kein globales. Deklarieren Sie eine Eigenschaft auf Ihrem zweiten Ansichtscontroller, und legen Sie dann diese Eigenschaft fest, bevor Sie sie präsentieren. Verwenden Sie Storyboards? Wenn ja, dann können Sie dies in 'prepareForSegueWithIdentifier tun:' – Paulw11
ja, genau wie @ Paulw11 erwähnt, verwenden Sie keine globale Variable. Wenn Ihr Projekt zu groß wird, werden Sie mit zu vielen Variablennamen verwechselt, und es ist nicht gut für die Entwicklung. Wird Ihre Variable nur zwischen diesen 2 verschiedenen View-Controllern verwendet? – jo3birdtalk