簡體   English   中英

帶有數組的Swift 2結構

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM