ios - 在 swift 中通过 inout 参数写一个 var

标签 ios swift alamofire

我想将多张图片加载到一个模型中。我试图用一个 loadImage() 函数和一个 inout 参数来解决这个问题。但由于某种原因,图像变量总是空的。我没有看到图像。

这里有什么问题吗?

   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)
            }
        }
    }

最佳答案

使用闭包效果很好......但看起来很丑

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)
            }
        }
    }

关于ios - 在 swift 中通过 inout 参数写一个 var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27777024/

相关文章:

swift - 如何对来自 Alamofire 的 JSON 进行排序并返回最终的 JSON 对象 (swiftyJSON)

ios - 周围有尖锐阴影的文字

iphone - 在 iOS 5 应用程序中将文件保存在何处?

iOS Prefix.pch 最佳实践

ios - 带有来自 API 的图像的 Swift tableView 在滚动时滞后

ios - 用于混合 V+H 的 AutoLayout 可视化语言

ios - 快速重复检查和操作

swift - 通过 Swift 3 包管理器添加 Alamofire 作为依赖项

ios - Alamofire 4 URL请求参数编码为JSON

ios - UIScrollView 交互区域不随 frame/contentSize 更新