10

全て

私は Swift を学んでおり、AlamofireImage を使用して UIImageView に画像を設定しようとしています。次のコードを使用しています。

self.listImageView.af_setImageWithURL(
        NSURL(string: list!.image!)!,
        placeholderImage: nil,
        filter: nil,
        imageTransition: .CrossDissolve(0.5),
        completion:{ image in
            print(image)
        }
)

コンソールの結果は次のとおりです。

SUCCESS: <UIImage: 0x7fb0c3ec3d30>, {512, 286}

私の目的は、ダウンロードされた画像で何かをすることですが、問題は、完了コールバックの署名を理解していないことと、完了ブロックで画像にアクセスする方法がわからないことです。ドキュメントによると、ですResult<UIImage, NSError>

本当に単純なことだと思いますが、気づいていません。

ありがとう

4

1 に答える 1

30

image完了ブロックに渡される変数は実際には型Alamofire.Responseであり、UIImageフェッチされた基になるインスタンス自体ではありません。

応答から実際の画像を取得するには、以下のように完了ブロックを更新する必要があります。

self.listImageView.af_setImage(
    withURL: URL(string: list!.image!)!,
    placeholderImage: nil,
    filter: nil,
    imageTransition: .crossDissolve(0.5),
    completion: { response in
        print(response.value) # UIImage
        print(response.error) # NSError
    }
)

まず、画像が正常に取得されたかどうかを確認するためにresponse.result.isSuccess(または彼の兄弟) を確認することをお勧めします。response.result.isFailure

于 2015-11-26T20:44:59.470 に答える