我有一个字典设置为:
var jDict = Dictionary<String, AnyObject[]>()
Run Code Online (Sandbox Code Playgroud)
数组是自定义按钮(JunkButton)或标签(JunkLabels)的集合.
我在尝试访问Dictionary中包含的数组成员时遇到问题,如下所示:
let thisArray = jDict[key]
var aButton = thisArray[0] //Gives error: 'AnyObject[]? does not have a member named 'subscript'
Run Code Online (Sandbox Code Playgroud)
我可以通过向下转换整个数组来解决这个问题,如下所示:
if let aArray = thisArray as? JunkButton[]{
var aButton = aArray[0]
}
Run Code Online (Sandbox Code Playgroud)
这看起来非常麻烦,特别是如果我确定我知道阵列是由什么类型预先组成的.是否有一种方法可以在创建thisArray时使用它来提取其元素而不必每次都将它们展开?
Dictionary永远给你Optional价值.
你的代码是这样的
let thisArray : Optional<AnyObject[]> = jDict[key]
Run Code Online (Sandbox Code Playgroud)
您需要打开它以获得非可选值
let thisArray = jDict[key]! // thisArray is AnyObject[]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1764 次 |
| 最近记录: |