AFNetworking 3.0 AFURLResponseSerialization หายไป

ฉันได้รับมอบหมายให้ทำงานในโครงการที่ใช้ afnetworking ซึ่งถูกเพิ่มด้วยตนเอง ฉันลบมันออกแล้วติดตั้ง AFNetworking 3.0 ผ่านโกโก้Pods

มีหลายสิ่งที่แตกหัก ฉันได้กำหนดประเภทเนื้อหาที่ยอมรับได้ด้วยตนเองตามที่แสดงด้านล่าง:

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);

                                                                                 }];

ใน AfNetworking เวอร์ชัน 3 ไม่มีคุณสมบัติดังกล่าว

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

ฉันได้ค้นหาสิ่งที่เทียบเท่าในเวอร์ชัน 3.0 หรือมีวิธีอื่นใดในการแก้ไขปัญหาการตั้งค่าประเภทเนื้อหาที่ยอมรับได้ด้วยตนเอง ฉันจะขอบคุณมากถ้ามีคนสามารถช่วยฉันในเรื่องนี้


person userG    schedule 23.02.2016    source แหล่งที่มา


คำตอบ (1)


API มีการเปลี่ยนแปลงใน AFNetworking เวอร์ชัน 3.x

ตอนนี้ UIImageView+AFNetworking ใช้อินสแตนซ์ AFImageDownloader เพื่อจัดการงานการดาวน์โหลดรูปภาพ และ AFImageDownloader ใช้อินสแตนซ์ AFHTTPSessionManager เพื่อจัดการคำขอ http ดังนั้นคุณจึงสามารถกำหนด AFImageResponseSerializer แบบกำหนดเองของคุณถึง AFImageDownloader ได้ดังนี้:

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