Error de statement esperado al crear una matriz en ViewController, no se puede determinar por qué.

Primero, estoy usando Xcode 6 beta 2. En segundo lugar, tengo experiencia en progtwigción (básico, VB, lenguajes de script), pero no incluye ninguna progtwigción seria de OO, y soy totalmente nuevo en la progtwigción de IOS. Ir directamente a Swift. De antemano, gracias a quienes pueden ayudar. He estado luchando por esto hace unos días.

Tiene problemas para build una simple matriz UIImage. (He eliminado todo el rest del código para simplificar). Estoy tratando de entender por qué declarar una matriz UIImage y cargar imágenes funciona dentro de viewDidLoad (), pero no en la "base" de ViewController, que es donde parece que necesito para que otras cosas funcionen.

(Me di count de que parece estar vinculado al hecho de que se trata de una statement de matriz, lo que aumenta mi confusión. Puedo declarar y asignar variables simples de UIImage en cualquier location).

Aquí está mi código:

// ViewController.swift import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // 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. } var icon = UIImage[]() icon.append(UIImage(named: "yes.png")) <<==== expected declaration error icon.append(UIImage(named: "no.png")) } 

Pero este código no:

 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. var icon = UIImage[]() icon.append(UIImage(named: "yes.png")) <==== no error, and builds icon.append(UIImage(named: "no.png")) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } 

Solo puede tener declaraciones de properties fuera de los methods de una class. Toda la funcionalidad de la class va dentro de los methods. Cuando declara var icon = UIImage[]() fuera de un método, es una statement de propiedad de instancia y es un código válido.

Tus siguientes dos líneas intentan modificar la propiedad. El código fuera de los methods nunca se ejecuta porque no hay forma de llamarlo. Si bien puede declarar properties fuera de los methods, debe usarlos dentro de un método de su class.

Recomendaría aprender más acerca de la progtwigción orientada a objects, porque parece que todavía no tienes el scope. Es posible que desee probar un idioma que tenga más confiabilidad y resources de aprendizaje que Swift actualmente. Si planeas hacer un desarrollo iOS, sería útil aprender el objective -c incluso si quieres usar Swift porque obtendrás exposition a las API de Apple que son las mismas en ambos idiomas.