私はアプリケーションでtwitter apiを使用するためにfabricプラグイン/ Twitter-kitを使用しています。私は有名人のプロフィール画像の画像URLを取得したいです。ここに私のコードは以下のとおりです。SwiftのClosureから値を返す方法は?
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
}
クロージャが完全に実行される前にメソッドが終了するため、値を返す方法がわかりません。私は迅速にすべての助けを感謝しています。
imageURlから画像を取り除くには、このメソッドをtableviewのcellForRowIndexPathに使用します。
[Swiftのボイドクロージャから値を返す方法については、こちらを参照してください](http://stackoverflow.com/questions/37798352/how-to-return-a-value-from-a-void-closure-in -迅速)。 – OOPer
http://stackoverflow.com/questions/38160959/void-inside-of-return-function/38161092#38161092 – penatheboss