2016-05-31 31 views
1

我是Swift新手,我正在努力應對不熟悉的(對我而言)數據結構。我試圖跟蹤2維數組中元素的狀態。從概念上講,我認爲它看起來是這樣的:Swift:用於跟蹤2維數組狀態的集合類型

x 
|_group 
| |_ item 
| |_ item 
| |_ item 
|_group 
    |_ item 
    |_ item 

我的邏輯是,我想創建一個字典的組,每個單元內,我將存儲其他字典一個整數(?)(?)鍵和一個布爾值。當我初始化集合類型時,我希望它是「空的」。因此,一個例子:

如果我第一批真正的整個集合中設置的第三項看起來是這樣的:

statusTracker[0:[2: true]] 

如果我再在第二組中選擇的第一要素,我得到這個:

statusTracker[0:[2: true],1:[0:true]] 

...和設置在第一組中的第一個元素產生這樣的:

statusTracker[0:[0:true, 2:true],1:[0:true]] 

我的問題是雙重的: 這是一個明智的集合類型來實現我想要做的事情嗎? 如果是這樣,我如何初始化這種類型的數據結構而不設置任何值?

+0

看起來像一個字典的數組已足夠在那裏 –

回答

1

聲明你的數據結構,例如:

var statusTracker = [Int: [Int:Bool]]() 

例如:

51> var statusTracker = [Int: [Int:Bool]]() 
statusTracker: [Int : [Int : Bool]] = 0 key/value pairs 
52> statusTracker[0]=[0:true, 1:false, 2:false] 
53> statusTracker[1]=[0:false, 1:false] 
54> statusTracker 
$R7: [Int : [Int : Bool]] = 2 key/value pairs { 
    [0] = { 
    key = 0 
    value = 3 key/value pairs { 
     [0] = { 
     key = 2 
     value = false 
     } 
     [1] = { 
     key = 0 
     value = true 
     } 
     [2] = { 
     key = 1 
     value = false 
     } 
    } 
    } 
    [1] = { 
    key = 1 
    value = 2 key/value pairs { 
     [0] = { 
     key = 0 
     value = false 
     } 
     [1] = { 
     key = 1 
     value = false 
     } 
    } 
    } 
} 

不管這是不是代表你的數據完全是另一個問題的最佳途徑。

+1

謝謝@Ed - 我真的很努力地聲明數據結構(我靠近了,但必須爲第一個元素設置一個'false'值, t理想。你的答案適合我:-) – James