2017-03-07 104 views
-2

我在swift中轉換目標c代碼。從字典中提取字典swift

我從服務器獲取數據,該服務器在字典中有字典。 我正在獲取鍵值字符串,但無法獲取字典。

示例數據:

data =   { 
      caption = hello; 
      image =    { 
       a = "https://www.google.com/1024x1024"; 
       b = "https://www.google.com/640x640"; 
       c = "https://www.google.com/480x480"; 
       d = "https://www.google.com/"; 

      }; 
     }; 

我可以得到說明

let dataDict = (mainDict[data] as? Dictionary<String,AnyObject>)! 

Obj.caption=String(dataDict["caption"]!) //getting hello 

Obj.imageDictionary = (dataDict["image"] as? Dictionary<String,String>)! //getting 0 key value pairs 

初始化imageDictionary作爲

var imageDictionary = Dictionary<String, String>() 

請建議如何讓圖像詞典,我想這本字典存儲在imageDictionary對象中。

任何建議將不勝感激! 在此先感謝!

+0

你能添加的控制檯日誌只是'打印(dataDict [ 「形象」])'沒有任何演員。 –

+0

你的空間是...藝術。 – Alexander

回答

1

試試這個:

let data : [String : Any] = ["caption" : "hello", 
          "image" :["a" : "https://www.google.com/1024x1024", 
         "b" : "https://www.google.com/640x640", 
         "c" : "https://www.google.com/480x480", 
         "d" : "https://www.google.com/", 
    ] 
] 

let caption = data["caption"] as! String 
let imageDictionary = data["image"] as! [String : String] 

imageDictionary,我得到:

["b": "https://www.google.com/640x640", "a": "https://www.google.com/1024x1024", "d": "https://www.google.com/", "c": "https://www.google.com/480x480"] 

截圖: enter image description here

+0

嘿感謝回答,但在調試左控制檯檢查imageDictionary顯示0鍵值對 – Gypsa

+0

我已經添加了代碼和輸出的屏幕截圖。請看一看。在調試左側控制檯中,它有時也會顯示字典的0個鍵/值對。嘗試打印對象。 – PGDev

+0

感謝它的工作 – Gypsa