2016-08-13 19 views
0

我的代码:the following is my code!如何进入Firebase并获取我的图片网址,然后将其解码为UIImage,然后在Google地图中将图片显示为标记图标?

 func queryImageWithCompletion(completion:((image:UIImage?)->Void)?) { 
      self.ref.child("users").child((userID)!).observeEventType(.Value, withBlock: { snapshot in 
       if let strUrl = snapshot.value as? String, url = NSURL(string: strUrl) { 
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), { 
         if let data = NSData(contentsOfURL: url), image = UIImage(data:data) { 
          dispatch_async(dispatch_get_main_queue(), { 
           completion?(image:image) 
           marker.icon = UIImage(data: data) 
          }) 
         } else { 
          dispatch_async(dispatch_get_main_queue(), { 
           completion?(image:nil) 
          }) 
         } 
        }) 
       } else { 
        dispatch_async(dispatch_get_main_queue(), { 
         completion?(image:nil) 
        }) 
       } 
      }) 
     } 

这是我使用的尝试显示图片作为标记图标的代码!谁能帮我。我没有得到任何错误,但它不会工作。

+0

请发表你的代码,而不是它的屏幕截图。并解释你的错误或问题是 – TheValyreanGroup

回答

1

由于网络操作都是异步的,我建议你使用以下方法:

func queryImageWithCompletion(completion:((image:UIImage?)->Void)?) { 
    ref.child("users").child(String(authorId)).child("profileUrl").observeEventType(.Value, withBlock: { snapshot in 
     if let strUrl = snapshot.value as? String, url = NSURL(string: strUrl) { 
      dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), { 
       if let data = NSData(contentsOfURL: url), image = UIImage(data:data) { 
        dispatch_async(dispatch_get_main_queue(), { 
         completion?(image:image) 
        }) 
       } else { 
        dispatch_async(dispatch_get_main_queue(), { 
         completion?(image:nil) 
        }) 
       } 
      }) 
     } else { 
      dispatch_async(dispatch_get_main_queue(), { 
       completion?(image:nil) 
      }) 
     } 
    }) 
} 
+0

感谢您的帮助?我正在使用谷歌地图,并希望将该用户个人资料图片显示为标记图标。目前我正在尝试这样做: –

+0

我设置的标记图标等于图像下如果让数据语句是这样的:marker.icon = UIImage(data:data) –

+0

任何代码,你可以发布?这将有所帮助.... –

相关问题