2016-03-01 92 views
1

這應該是超級基本的,但是我得到一個錯誤。Swift:如果我知道密鑰,就可以獲取字典值

Cannot subscript a value of type 'Dictionary<String, AnyObject>' with an index of type 'String'

這裏是我的代碼:

func createComments(attributes: [[String: AnyObject]], votes: [String: AnyObject], sid: Int) -> [Comment] { 
    var comments: [Comment] = [Comment]() 

    for commentAttributes in attributes { 
     let comment = Comment() 
     comment.commentId = commentAttributes["id"] 
     comments.append(comment) 
    } 

    return comments 
} 

我得到這條線上的錯誤:

comment.commentId = commentAttributes["id"]

據我所知,commentAttributes應該是一個帶有作爲字符串和AnyObject值的字典。我不知道除了通過使用字符串到下標以外,還有什麼方法可以使用String鍵訪問Dictionary的值。我在這裏錯過了什麼?

+0

「Comment」的定義在哪裏?它有一個''commentId''成員嗎? – formal

回答

0

嘗試使用if let並且將它轉換爲正確的類型。

for commentAttributes in attributes { 
     let comment = Comment() 
     if let id = commentAttributes["id"] as? Int { 
      comment.commentId = id 
     } 
     comments.append(comment) 
} 
相關問題