[英]Swift 2 Struct with Array
我是Swift和制作游戲的新手(一般來說對編碼也很Gamescene
),我目前想在兩個Gamescene
之間傳遞一個變量。 之后做一些研究我已經來到我需要的結論struct
用[int]()
持有我想出於某種原因,而我不能賦值到我的整數數組的數字generatedSequenceArray
我的結構:
struct generatedSequenceForGameScene {
static var generatedSequenceArray = [Int]()
}
在我的一個GameScene
類中,我初始化了generatedSequenceForGameScene
struct
對象:
var generatedSequence = generatedSequenceForGameScene()
我正在調用的方法是:
func pickNumbers(){
for var x = 0; x < highLevel; ++x{
generatedSequence.generatedSequenceArray.append(Int(arc4random_uniform(10)))
print(generatedSequence.generatedSequenceArray)
}
}
在嘗試從每個GameScene
移動變量之前,我的代碼是這樣的:
變量: var generatedSequence = [Int]()
方法:
func pickNumbers(){
for var x = 0; x < highLevel; ++x{
generatedSequence.append(Int(arc4random_uniform(10)))
print(generatedSequence)
}
}
這給了我我想要的結果。 注: pickNumber
方法被調用在名為方法loadView()
其被放置在didMoveToView
方法在程序
這里有幾件事要注意。
首先,結構內部的static
關鍵字使generatedSequenceArray
成為靜態屬性。 這意味着在您調用它的任何地方都一樣。 這不是你想要的。
其次,除非您計划向結構中添加更多屬性,否則沒有理由存在它。 為什么要把它包裝成一個結構呢? 為什么不直接傳遞整數數組(您選擇的數字)呢?
第三,類型名稱應為適當的大小寫。 因此, generatedSequenceForGameScene
應該是GeneratedSequenceForGameScene
)。
我不確定到底是什么對您不起作用。 我想您在從一個游戲場景到另一個游戲場景共享序列時遇到了麻煩。 如果那是問題,也許以下幫助:
struct Sequence {
var seqArray = [Int]()
mutating func pickNumbers() {
for var x = 0; x < 10; ++x {
seqArray.append(Int(arc4random_uniform(10)))
}
print( "picked: \(seqArray)" )
}
}
class GameScene {
var s = Sequence()
}
var g1 = GameScene()
var g2 = GameScene()
g1.s.pickNumbers()
g2.s.seqArray = g1.s.seqArray
print( g2.s.seqArray )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.