[英]Looping an array of NSDictionaries in swift
好的,試圖趕上最后一趟學習Swift的火車,我遇到了類似的問題,但我沒有讓他們解決我的問題。
我有一個NSDictionary
叫做entries
,對應於鍵"TYPES"
的值之一是NSDictionaries的NSArray
。 我試圖遍歷后一個NSDictionary
並為鍵"TID"
檢索一個整數值,我正在做:
for dict in entries["TYPES"] as NSDictionary {
let tid : Int = typeDict["TID"]
}
但是我收到錯誤消息:( (key: AnyObject, value: AnyObject)
沒有名為“ subscript”的成員
我了解這是由於entries["TYPES"]
是anyObject!
並且來自Xcode 6 beta 6,在該版本中,許多Foundation API已通過審計以檢查是否符合可選規范,因此需要解包,但是我盡最大努力進行了解包,但未成功,編譯器始終在抱怨另一件事。 有人知道該怎么做嗎?
如果這是您的詞典的樣本:
var entries: NSDictionary = [
"TYPES": [
[],
["TPD": 2],
["TID": 4]
] as NSArray
]
你必須:
TYPES
鍵標識的元素,並嘗試轉換為NSArray
NSDictionary
為NSDictionary
TID
密鑰是否存在,並讀取其值 這是代碼:
var tid: Int?
if let types = entries["TYPES"] as? NSArray {
for type in types {
if let dict = types.lastObject as? NSDictionary {
tid = dict["TID"] as? Int
if tid != nil {
break
}
}
}
}
使用示例數據在操場上運行代碼,我看到的輸出是{Some 4}
。
但是,我會考慮@Zaph的建議,並使用結構和/或類以其他方式對數據建模
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.