Instanzmember können nicht verwendet werden, die auf Art 'ViewController'
class ViewController: UIViewController {
let fortuneArray = ["You will find true love in the summer.", "Outlook not good", "You may find great success in business soon.", "Watch out for grey cats."]
let randomIndex = Int(arc4random_uniform(fortuneArray.count))
override func viewDidLoad() {
super.viewDidLoad()
let randomIndex = Int(arc4random_uniform(UInt32(fortuneArray.count)))
print("random index: ")
print(randomIndex)
//Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
//Dispose of any resources that can be recreated.
}
//actions
@IBAction func cookiePressed(sender: AnyObject) {
fortune.text = fortuneArray[randomIndex]
}
Ich bin momentan dabei, eine sehr einfache Wahrsagerei-app in Swift und ich laufen in Probleme mit arc4random_uniform
. Derzeit versuche ich nur, um die app zeichne einen string auf random, aber ich bekomme eine Fehlermeldung:
Instanz-Mitglied "fortuneArray' kann nicht verwendet werden, die auf Art 'ViewController'
auf der Linie, wo ich bin deklarieren der variable randomIndex
. Ich habe mit google für eine Weile, aber habe nicht gefunden ein Update. Hoffentlich kann mir jemand helfen, vielen Dank!
* Update *
Problem gelöst! Danke.
- sind diese Zeilen in eine Methode wie
viewDidLoad
oder einfach nur in der Klasse definiert? - Wenn Fonix, die Antwort hat Ihnen geholfen, sollten Sie es akzeptieren, indem Sie auf das Häkchen neben der Option.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn der code eingefügt ist, die nicht definiert eine Methode wie
viewDidLoad
können Sie nicht verwenden Sie eine variable, das ist definiert in der Klasse für eine andere variable, das ist definiert in der Klasse als gut. Diese Variablen werden zur Laufzeit ermittelt und die Reihenfolge festgelegt sind, ist nicht bekannt, so fortuneArray können nicht existieren, bevor randomIndex gemacht wird (vielleicht nicht wirklich so arbeiten hinter den kulissen, aber Sie können denken Sie an es auf diese Weise zumindest)sollten Sie die Berechnung dieser Variablen innerhalb
viewDidLoad
oderinit
oder eine andere Funktion, anstattlazy
wie beschrieben von Martin R in dieser Antwort? stackoverflow.com/questions/25854300/...Ah, ich dachte, es mit Fonix Hilfe. Als ich erklärte, dass die Zufallszahl in eine IBAction und kümmerte sich um ihn.