2017-02-09 69 views
0
import UIKit 
import Foundation 

var FamilyOne = ["Sarah", "Female", "Granddaughter"] 
var FamilyTwo = ["Isabel", "Female", "Granddaughter"] 
var FamilyThree = ["Maya", "Female", "Granddaughter"] 
var FamilyFour = ["Jean", "Female", "Daughter"] 
var FamilyFive = ["Jennie", "Female", "Daughter"] 

var MainArray = FamilyOne 

var FemaleArray = ["Ava", "Mary", "Ann", "Carolina", "Jessica", "Emily",  "Elizabeth"] 
var Photo = MainArray[0] 
var SImage = UIImage(named: Photo) 

var Gender = MainArray[1] 
var Relation = MainArray[2] 

class ViewController: UIViewController, UIImagePickerControllerDelegate, 
    UINavigationControllerDelegate { 

    @IBOutlet var image: UIImageView! 
    @IBOutlet var label: UILabel! 
    @IBOutlet var ButtonOne: UIButton! 
    @IBOutlet var BUttonTwo: UIButton! 
    @IBOutlet var ButtonThree: UIButton! 
    @IBOutlet var BUtton4: UIButton! 

    var SimageView = UIImageView(image: SImage!) 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     label.text = ("What is the name of your \(Relation) ?") 

     SimageView.frame = CGRect(x: 67, y: 40, width: 240, height: 128) 
     view.addSubview(SimageView) 

     ButtonOne.setTitle(FemaleArray[4], for: UIControlState.normal) 
     BUttonTwo.setTitle(MainArray[0], for: UIControlState.normal) 
     ButtonThree.setTitle(FemaleArray[5], for: UIControlState.normal) 
     BUtton4.setTitle(FemaleArray[2], for: UIControlState.normal) 
    } 
} 

我怎样才能把这个代码放到一个for循环,并让它变“MainArray”的价值FamilyTwo第二循环运行时,FamilyThree第三次循环运行,等。等。?当我在ViewController之前放置一个for循环时,我总是得到'不允许顶层表达的表达式'的错误。如何运行循环?

+2

如果每个数组都表示一个家庭成员,那么创建一个自定义类来表示每个数组可能会更好。您可以将它命名为FamilyMember,并为其指定名称,性别和关系等字符串属性。 –

+1

我如何理解,把它/叫做viewDidLoad()'。如果你不熟悉viewControllers的生命周期,[检查出来](http://stackoverflow.com/a/12608364/1457385)。 – shallowThought

回答

-1

我不确定你想要完成什么,但是如果你只是想在运行时改变你的MainArray的值,可以将它们存储在一个新的集合中。

var FamilyOne = ["Sarah", "Female", "Granddaughter"] 
var FamilyTwo = ["Isabel", "Female", "Granddaughter"] 
var FamilyThree = ["Maya", "Female", "Granddaughter"] 
var FamilyFour = ["Jean", "Female", "Daughter"] 
var FamilyFive = ["Jennie", "Female", "Daughter"] 
let Families = [FamilyOne, FamilyTwo, FamilyThree, FamilyFour, FamilyFive] 

var MainArray = FamilyOne //set initial value? 

override func viewDidLoad() { 
    super.viewDidLoad() 
    //loop here 
    for family in Families{ 
     MainArray = family 
    } 
} 

Expression not allowed on top level如果您在函数或类之外编写循环,这是正常的。