2017-01-17 5 views
1

私はしばらくの間立ち往生していた質問をしたいと思っていました。辞書スウィフトからのプロパティのランダム生成2

私は

class ShapeColour : NSObject { 
     var colour:String 
     var shape:String 
     var image:UIImage 

init(color: String, shape: String, image: UIImage) { 
      self.colour = color 
      self.shape = shape 
      self.image = image 
     } 

    } 


    //Blue Square 

    let blueSquareObject = ShapeColour(color: "blue", shape: "square", image: UIImage(named: "BlueSquare.jpg")!) 

    //Red Square 

    let redSquareObject = ShapeColour(color: "red", shape: "sqaure", image: UIImage(named: "RedSquare.jpg")!) 

(のみ2を例に示されている)次の特定のプロパティを持つクラスを作成し、それに行くためにいくつかのオブジェクトを作成している、私は再び(すべてのオブジェクトを含む辞書を作成し、 2つしか表示されません)、オブジェクトの1つをランダムに選択しようとするコード行を書きました。

let allMainShape = [0:blueSquareObject,1:blueCircleObject] 
let randomIndex = Int(arc4random_uniform(UInt32(allMainShape.count))) 

私はランダムにオブジェクトの1つを生成し、その世代からの属性のいずれかを抽出する方法を知りたいです。私はそれがこのようなものになるだろうと思った:おかげで、 任意の助けをいただければ幸いです

print"Colour is \(allMainShape.color[randomIndex])" 

;)

答えて

1

それはallMainShape[randomIndex].colorないallMainShape.color[randomIndex]でなければなりません。また、をIntegerキーで作成する代わりに、ShapeColourの配列を使用する必要があります。

このようにする必要があります。

+0

ありがとうございました!出来た! image属性を使用してイメージビューのイメージを変更することは可能でしょうか?例:Imageview.image = uiimage(名前: "\(Allmainshape [randomindex] .image")?またはイメージ名属性が文字列であるためにエラーが発生するでしょうか?ありがとう! – Nosh

+0

これは単純に 'imageviewです。 image = Allmainshape [randomindex] .image'あなたは既に文字列1ではなくUIImageインスタンスを持っているからです。 –

関連する問題