-2

次のメソッドを迅速に宣言する方法がわかりません。

- (void)downloadImageWithURL:(NSURL *)url completionBlock:(void (^)(BOOL succeeded, UIImage *image))completionBlock {

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[NSURLConnection sendAsynchronousRequest:request
                                   queue:[NSOperationQueue mainQueue]
                       completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
                           if ( !error )
                           {
                                UIImage *image = [[UIImage alloc] initWithData:data];
                                completionBlock(YES,image);
                            } else{
                                completionBlock(NO,nil);
                            }
                       }];
}

natashatherobot ブログからこの方法を見つけました: http://natashatherobot.com/ios-how-to-download-images-asynchronously-make-uitableview-scroll-fast/

私は迅速に同じメソッドを呼び出したいと思います.非同期リクエストが画像を取得したら、それをcompletionBlockに渡します.

あなたは何を提案しますか?

4

1 に答える 1

1
func downloadImageWithURL(url: NSURL, completionBlock: (succeeded: Bool, image: UIImage?) -> ()) {
    let request = NSMutableURLRequest(URL: url)
    NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) { (response, data, error) in
        if error == nil {
            let image = UIImage(data: data!)
            completionBlock(succeeded: true, image: image!)
        } else {
            completionBlock(succeeded: false, image: nil)
        }
    }
}
于 2015-11-13T12:13:08.580 に答える