2016-05-02 15 views
0

次のコードでエラーが表示されます。 "インスタンスメンバー 'getRandomBoy'をSnips型で使用する。Swiftエラー - 型のインスタンスメンバーの使用

私は 'snipArray'の中でメソッド 'getRandomBoy'を使いたいと思います。

これは可能ですか?

Import Darwin 

struct Snips { 

let boyNames: [String] 

let snipArray: [String] = [ 
    "Drink A beer", 
    "Drink yet another Beer", 
    "Drink 4 beers", 
    "\(getRandomBoy()) has to drink)" 
    ] 

func getRandomSnip() -> String{ 
    let randomNumber: Int = Int(arc4random_uniform(UInt32(snipArray.count))) 
    return snipArray[randomNumber] 
} 

func getRandomBoy() -> String{ 
    let randomNumber: Int = Int(arc4random_uniform(UInt32(boyNames.count))) 
    return boyNames[randomNumber] 
} 
} 

答えて

1

あなたは内部のメソッドにアクセスするためのfunctionvariables宣言の前staticキーワードを記述する必要があります。このことができます

struct Snips { 

    static let boyNames = ["Hi", "Hello"] 

    static let snipArray: [String] = [ 
     "Drink A beer", 
     "Drink yet another Beer", 
     "Drink 4 beers", 
     "\(Snips.getRandomBoy()) has to drink)" 
    ] 

    static func getRandomSnip() -> String{ 
     let randomNumber: Int = Int(arc4random_uniform(UInt32(snipArray.count))) 
     return snipArray[randomNumber] 
    } 

    static func getRandomBoy() -> String{ 
     let randomNumber: Int = Int(arc4random_uniform(UInt32(boyNames.count))) 
     return boyNames[randomNumber] 
    } 
} 

希望:

はここにあなたの変更されたコードです!

関連する問題