Swift 2:无法将NSArray类型的值转换为NSString Dictionary吗?

时间:2015-10-25 03:40:42

标签: arrays swift dictionary

我正在制作一个简单的应用程序,以支持自闭症儿童的父母,以促进沟通。它应该很容易,因为我有一组代码用于以前的项目,但我坚持的是字典中的一组图像文件。在搜索之后,我仍然是新人,但我认为没有任何工作可行。为什么?我该怎么办? (我甚至放弃了数组并改为字典,但仍然有问题!)

import Foundation
import UIKit

struct WordList {

var placeCue: String?
var choiceImage: [UIImage] = []
var audio: [String] = []

init(index: Int){
let wordlistLibrary = WordlistLibrary().wordlists
let wordlistEntry = wordlistLibrary[index]

let iconName = wordlistEntry["choiceImage"]! as! String // When I run, this is the place to stuck. :(
choiceImage += [UIImage(named: iconName)!]

//choiceImage += wordlistEntry["choiceImage"] as! [UIImage]
placeCue = wordlistEntry["placeCue"] as! String!
audio += wordlistEntry["audio"] as! [String]
}
}

以下是我字典的一部分。

struct WordlistLibrary {

var  wordlists: [[String: AnyObject]] = [

[
"placeCue": "Audio0",   // toothache
"choiceImage": ["WaterBottle.pdf", "Medicine.pdf", "Dentist.pdf", "SomethingElse.pdf"],
"audio": ["Audio16", "Audio17", "Audio14", "Audio21"]
],

[
"placeCue": "Audio1",   // ear
"choiceImage": ["WaterBottle.pdf", "Medicine.pdf", "Nap.pdf", "SomethingElse.pdf"],
"audio": ["Audio16", "Audio17", "Audio18", "Audio21"]
]
]
}

1 个答案:

答案 0 :(得分:0)

您的choiceImage[String]。这不是String

所以将其改为

let iconName = wordlistEntry["choiceImage"]! as! [String]
choiceImage = iconName.map{ UIImage(named: $0)! }