AFNetworking 3.0 AFURLResponseSerialization hilang

Saya ditugaskan untuk mengerjakan proyek yang menggunakan afnetworking yang ditambahkan secara manual. Saya menghapusnya dan menginstal AFNetworking 3.0 melalui kakaoPods.

Sejumlah hal rusak. Saya secara manual menetapkan tipe konten yang dapat diterima seperti yang ditunjukkan di bawah ini:

AFImageResponseSerializer *serializer = [[AFImageResponseSerializer alloc] init];


serializer.acceptableContentTypes = [serializer.acceptableContentTypes setByAddingObject:@"application/x-www-form-urlencoded"];

self.MyCollectionViewCell.uiButton.imageView.imageResponseSerializer = serializer;

[self.MyCollectionViewCell.uibutton.imageView setImageWithURLRequest:request placeholderImage:nil
                                                                                 success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
 NSLog(@"Loaded successfully: %ld", (long)[response statusCode]);

[self.MyCollectionViewCell.uibutton setImage:image forState:UIControlStateNormal];

                                                                                 } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error){
    NSLog(@"failed loading: %@", error);

                                                                                 }];

Di AfNetworking versi 3 tidak ada properti seperti itu

@property (nonatomic, strong) id <AFURLResponseSerialization> imageResponseSerializer;

Saya telah mencari yang setara di versi 3.0. Atau apakah ada cara lain untuk mengatasi masalah pengaturan tipe konten yang dapat diterima secara manual. Saya akan sangat berterima kasih jika seseorang dapat membantu saya dalam hal ini.


person userG    schedule 23.02.2016    source sumber


Jawaban (1)


API telah berubah di versi 3.x AFNetworking.

Sekarang UIImageView+AFNetworking menggunakan instance AFImageDownloader untuk mengelola tugas pengunduhan gambar, dan AFImageDownloader menggunakan instance AFHTTPSessionManager untuk mengelola permintaan http, sehingga Anda dapat menetapkan AFImageResponseSerializer hingga AFImageDownloader khusus seperti ini:

AFImageResponseSerializer *serializer = [[AFImageResponseSerializer alloc] init];
serializer.acceptableContentTypes = [serializer.acceptableContentTypes setByAddingObject:@"application/x-www-form-urlencoded"];

AFHTTPSessionManager *sessionManager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:defaultConfiguration];
sessionManager.responseSerializer = serializer;

AFImageDownloader *imageDownloader = [[AFImageDownloader alloc] 
             initWithSessionManager:sessionManager
             downloadPrioritization:AFImageDownloadPrioritizationFIFO
             maximumActiveDownloads:4
                         imageCache:[[AFAutoPurgingImageCache alloc] init]];
[UIImageView setSharedImageDownloader:imageDownloader];
person Hong Duan    schedule 24.02.2016