2014-06-10 36 views
37

için Dictionary'e AnyObject Dökümü AFNetworking ile iTunes API'dan veri alıyorum ve yanıtla birlikte bir Sözlük oluşturmak istiyorum ancak bunu yapamıyorum.Hızlıca

Hata: Eğer anahtar ve değer türlerini vermek zorunda Swift bir Dictionary tanımladığınızda

func getItunesStore() { 

     self.manager.GET("https://itunes.apple.com/es/rss/topfreeapplications/limit=10/json", 
      parameters: nil, 
      success: { (operation: AFHTTPRequestOperation!,responseObject: AnyObject!) in 
       var jsonResult: Dictionary = responseObject as Dictionary 

      }, 
      failure: { (operation: AFHTTPRequestOperation!,error: NSError!) in 
       println("Error:" + error.localizedDescription) 
      }) 

    } 

cevap

103

:

"Hashable" yazmak için ifadenin türünü "Sözlük" dönüştürülemez Bu benim kodudur de. Bir şey gibi: döküm başarısız olursa

var jsonResult = responseObject as Dictionary<String, AnyObject> 

Ancak, bir çalışma zamanı hatası alırsınız - gibi bir şey ile daha iyiyiz:

if let jsonResult = responseObject as? Dictionary<String, AnyObject> { 
    // do whatever with jsonResult 
} 
+0

teşekkür Nate! İşe yarıyor! Swift benim için biraz garip ... Daha fazla pratik yapmam gerek, tekrar teşekkürler! – dpbataller

+0

jsonResult'dan yerel bir String'e nasıl bir değer atarım? değişken? – Sean

+2

jsonResult'a herhangi bir değer atayamazsınız çünkü 'let' anahtar sözcüğü immutable olarak işaretler. Yeni kopyalanmış bir nesne kullanmanız gerekecek. – lomokat

İlgili konular