ios – 如何从Swift中的Closure返回值?

ios – 如何从Swift中的Closure返回值?,第1张

概述所以我使用fabric plugin / Twitter-kit在我的应用程序中使用twitter api.我想获得一个名人的个人资料图片的图片网址.这是我的代码如下. func getImageURL(celebrity :String) -> String{ var imageURL = "" let client = TWTRAPIClient() let stat 所以我使用fabric plugin / Twitter-kit在我的应用程序中使用twitter API.我想获得一个名人的个人资料图片的图片网址.这是我的代码如下.
func getimageURL(celebrity :String) -> String{    var imageURL = ""    let clIEnt = TWTRapiclient()    let statusesShowEndpoint = userSearch    let params = ["q": celebrity,"page" : "1","count" : "1"                  ]    var clIEntError : NSError?    let request = clIEnt.URLRequestWithMethod("GET",URL: statusesShowEndpoint,parameters: params,error: &clIEntError)     clIEnt.sendTwitterRequest(request) { (response,data,connectionError) -> VoID in        if connectionError != nil {            print("Error: \(connectionError)")        }        do {            let Json = try NSJsONSerialization.JsONObjectWithData(data!,options: [])            print("Json: \(Json)")            let profileImageURL: String? = Json[0].valueForKey("profile_image_url_https") as? String            imageURL =  self.cropTheUrlOfImage(profileImageURL!)            print(imageURL)            //how do i return the value back. confused ?????            return imageURL        } catch let JsonError as NSError {            print("Json error: \(JsonError.localizedDescription)")        }    }    return imageURL}

我不知道如何返回值,因为该方法在闭包执行之前完成.我是新手,很快,任何帮助表示赞赏.

我想在tablevIEw中的cellForRowIndexPath中使用此方法来从imageURl下载图像.

解决方法 你是对的,sendTwitterRequest将在你的函数返回后返回,所以外部函数无法返回imageURL.

相反,在闭包中,获取单元格中所需的返回值并将其存储在某处(在成员变量中)并让tableVIEw自行更新它(例如使用tableVIEw.reloadData()).

这将导致它再次获取单元格(cellForRow …).更改实现以使用存储调用值的成员变量.

总结

以上是内存溢出为你收集整理的ios – 如何从Swift中的Closure返回值?全部内容,希望文章能够帮你解决ios – 如何从Swift中的Closure返回值?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1098324.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存