2017-02-09 65 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如果您在函數或類之外編寫循環,這是正常的。