2017-08-22 7 views
-1

downloadedImagebeginGetImageRequestから返す方法。スウィフトでインナークロージャの値を返す関数を作る方法

func beginGetImageRequest() { 

    if let imagePath = thumbPath { 
     request = Alamofire.request(.GET, imagePath).response(completionHandler: { (_, _, imageData, error) -> Void in 
      if error != nil { 
       NSLog("Error downloading thumbnail image: \(error)") 
      } else { 
       if let downloadedImage = UIImage(data: imageData!) { 
        self.imageView.image = downloadedImage 
       } 
      } 
     }) 
    } 
} 
+1

を。イメージのフェッチは_asynchronous_です。その言葉を検索してください。これはすべてのiOSプログラミングで最も頻繁に尋ねられ、答えられた形式の質問です。 – matt

答えて

0

誤解要求、そして私はagianそれを編集:

func beginGetImageRequest(completion:(_ image:UIImage)->()){ 

    if let imagePath = thumbPath { 
     request = Alamofire.request(.GET, imagePath).response(completionHandler: { (_, _, imageData, error) -> Void in 
      if error != nil { 
       NSLog("Error downloading thumbnail image: \(error)") 
      } else { 
       if let downloadedImage = UIImage(data: imageData!) { 
        completion(downloadedImage) 
       } 
      } 
     }) 
    } 
} 

あなたがメソッドを呼び出す:あなたはbeginGetImageRequest` `から何かを返すことができません

beginGetImageRequest { (image:UIImage) in 
     // code you need 
    } 
+0

これは動作しますが、完了まで渡すパラメータが成功と失敗の値を持つ列挙型のパターンを作成することもできます。成功すると、失敗したときにエラーオブジェクトを渡してイメージを渡します。呼び出し側が必要とするものだけに依存します。 –

+0

@DavidLari私はあなたのコメントにもっと賛成できません。もちろん、それが成功したか失敗したかを判断する必要があります。 –

+0

@david Lari、質問は迅速にそれを渡す方法です。 –

関連する問題