2015-01-05 3 views
1

Я хотел бы загрузить несколько изображений в модель. Я пытаюсь решить это с помощью функции loadImage() и параметра inout. Но по какой-то причине образ var всегда пуст. Я не вижу изображения.Запись параметра var через inout в swift

Что здесь не так?

public var image: UIImage = UIImage() 

    // Somewhere in the init function 
    self.loadImage("http://www.domain.com/cats.img", targetImage: &self.image) 

    func loadImage(url:String, inout targetImage:UIImage) { 
     dispatch_group_enter(self.dispatch_group); 

     println("Start loading image \(url)") 

     var request:Alamofire.Request = Alamofire.request(.GET, url).responseImage() { 
      (request, _, image, error) in 
      if error == nil && image != nil { 
       println("imageRequestSuccess") 

       // Save the image to the model property 
       targetImage = image! 

       // Dispatch if success 
       dispatch_group_leave(self.dispatch_group) 
      } else { 
       println("imageRequestFailure") 

       // Dispatch also to handle failure 
       dispatch_group_leave(self.dispatch_group) 
      } 
     } 
    } 

ответ

0

Использование закрытия работает отлично ... но выглядит некрасиво

self.loadImage(self.image_url!, onSuccess: { s1 in return self.image = s1 }) 



    func loadImage(url:String, onSuccess: (s1:UIImage) ->()) { 
     dispatch_group_enter(self.dispatch_group); 

     println("Start loading image \(url)") 

     var request:Alamofire.Request = Alamofire.request(.GET, url).responseImage() { 
      (request, _, image, error) in 
      if error == nil && image != nil { 
       println("imageRequestSuccess") 

       onSuccess(s1:image!) 

       // Dispatch if success 
       dispatch_group_leave(self.dispatch_group) 
      } else { 
       println("imageRequestFailure") 

       // Dispatch also to handle failure 
       dispatch_group_leave(self.dispatch_group) 
      } 
     } 
    } 
Смежные вопросы