2015-08-27 132 views
1

我想知道我能否做到標題所暗示的含義。 這是一些代碼。Swift - 動態初始化嵌套結構

struct Crop { 
    var name = String() 
    var season = String() 
    var reharvistable = Bool() 

    //struct Stages:  
    struct Stage1{ 
     var minDay = Int() 
     var maxDay = Int() 
     var minWater = Int() 
     var maxWater = Int() 
    }/* 
    struct Stage2{ 
     var minDay = Int() 
     var maxDay = Int() 
     var minWater = Int() 
     var maxWater = Int() 
    } */ 
} 

var Crops = [Crop]() 
var temp = Crop(name: "Turnip", season: "Spring", reharvistable: false) 

Crops.append(Crop(Name: "Turnip", Season: "Spring", Reharvistable: 
    false, Stage1(minDay: 2, maxDay: 3, minWater: 2, maxWater: 7))) 

第2階段已被註釋掉,但我希望未來能夠進入第6階段。

「溫度」的作品,但我嘗試將它們添加到數組沒有。我的最終目標是將這些「作物」存儲在一個數組中,「作物」,所以我希望能夠動態添加更多「作物」。 另外,括號在每個數據類型之後,因爲他們給我一個沒有它們的錯誤。

回答

2

如何不在作物結構中定義階段結構,而是分別定義它們並在作物內部有階段數組。就像這樣:

struct Crop { 
    var name = String() 
    var season = String() 
    var reharvistable = Bool() 
    var stages = [Stage]() 
} 

struct Stage { 
    var minDay = Int() 
    var maxDay = Int() 
    var minWater = Int() 
    var maxWater = Int() 
} 

則你可以定義這樣的作物:

Crops.append(Crop(name: "Turnip", season:" spring", reharvistable: false, stages: [ 
    Stage(minDay: 2, maxDay: 3, minWater: 2, maxWater: 7), 
    ... 
]) 

這種方式,你可以有很多階段,只要你願意,並添加或隨意刪除它們。