2016-10-12 10 views
0

ボタンに画像の名前を割り当てようとしています。イメージ名は配列に格納されます。しかし、私はタイトルにエラーを取得していますSwift - インデックスタイプがNSNumberの値タイプ[String]をサブスクリプトできませんか?

マイコード:

//profilePic is the button 
//friend is a coredata object received from another view. picIndex is stored as int16 in the coredata 

profilePic.setImage(UIImage(named: imgArray[friend.picIndex]), forState: UIControlState.Normal); 

マイアレイ:

var imgArray = ["a.jpg", "aq3d.jpg", "b.jpg", "c.jpg", "d.jpg", "e.jpg", "f.jpg", 
    "fallout.jpg", "g.jpg", "h.jpg", "i.jpg", "j.jpg", "k.jpg", "overwatch.jpg", "space.jpg"]; 
+2

OTことを作ることができます:あなたはドント必要は ';'スウィフトインチ –

+0

'friend.picIndex'は' NSNumber'ですか? – rmaddy

+0

@RashwanLうん、知ってるよ。しかし、私は他の言語もやっているので、私はそれを使い続けたいと思っています。その習慣 –

答えて

0

スウィフトはintValueを呼び出すことによって、この文脈でNSNumberを "アンラップ" する必要があります:

profilePic.setImage(
    UIImage(named: imgArray[friend.picIndex.intValue]) 
, forState: UIControlState.Normal //  ^^^^^^^^^ 
) 

のクラスを管理している場合変数の場合は、の代わりにpicIndexIntとすることを検討してください。

0

あなたは確かit's本当にint型の値

if let index = Int(friend.picIndex){ 
    profilePic.setImage(UIImage(named: friend[index]), for: .normal) 
} 
else{ 
    // Not a number 
} 
関連する問題