2016-03-21 27 views
0

ile ezmeye: Bir hücre cellForRowAtIndexPath içinde dequeued her defasında denirBen bu yöntemi var observeForSingleEventOfType

func fetchImageWithKey(key: String, completion: UIImage ->()) { 
    imagesEndPoint.childByAppendingPath(key).observeSingleEventOfType(.Value, withBlock: { snapshot in 
    guard let imageString = snapshot.value["imageString"] as? String else { return } 
    guard let imageData = NSData(base64EncodedString: imageString, options: .IgnoreUnknownCharacters), image = UIImage(data: imageData) else { fatalError() } 
    completion(image) 
    }) 
} 

. Bazı nedenlerden dolayı, tablo içinde gezinirken, bu satır guard let imageString = snapshot.value["imageString"] as? String else { return }, else satırına çarpacaktır.

Ref dosyasının gerçekten de "imageString" anahtarının ve sonda String türünde bir değere sahip olduğundan emin oldum. Ben tableView hücre dequeueing ile ilgili bir şey olduğunu düşünüyorum, ama bu soruna nasıl yaklaşabilirim emin değilim.

Herhangi bir öneri?

cevap

0

Emin misiniz: snapshot.value sözlüktür. Aşağıdakileri kontrol etmelisiniz:

if let dic = snapshot.value as? NSDictionary{ 
      guard let imageString = dic["imageString"] as? String else { return } 
      guard let imageData = NSData(base64EncodedString: imageString, options: .IgnoreUnknownCharacters), image = UIImage(data: imageData) else { fatalError() } 
      completion(image) 
     }else{ 
      // 
     }