AFNetworking 3.0 xバージョンの最新機能
5945 ワード
AFNetworkingは、OS XとiOSの両方で愛されるネットワークライブラリです.iOSの新しいバージョンのアップグレードに対応するために、AFNetworkingは3.0バージョンでNSURLConnection APIベースのすべてのサポートを削除しました.プロジェクトが以前にこれらのAPIを使用したことがある場合は、NSURLSessionベースのAPIのAFNetworkingのバージョンにすぐにアップグレードすることをお勧めします.このガイドでは、この手順を説明します.
このガイドは、AFNetworking 2の使用を誘導するためのものです.xは、移行の目的を達成するために最新のバージョンAPIにアップグレードされ、新規および変更された設計構造を説明します.
AFNetworking 3.0で正式にサポートされているiOS 7、Mac OS Xの10.9、watchOS 2、tvOS 9、Xcode 7.旧バージョンのSDKプロジェクトでAFNetworkingを使用したい場合は、READMEの互換性情報を確認してください.
AFNetworking 1.0はNSURLConnectionのベースAPIの上に構築され、AFNetworking 2.0はNSURLConnectionのベースAPIの使用を開始し、NSURLSessionベースの新しいAPIのオプションを使用します.AFNetworking 3.0は現在、NSURLSessionのAPIに完全に基づいており、メンテナンスの負担を低減し、アップルがNSURLSessionに提供する追加機能を強化することをサポートしています.Xcode 7ではNSURLConnectionのAPIがアップルに正式に廃棄された.APIは引き続き動作するが、新しい機能は追加されず、アップルはNSURLSessionを十分に発展させるためにネットワークベースのすべての機能を通知した.
AFNetworking 2.Xは引き続き重要な危険性とセキュリティパッチを取得しますが、新しい機能は追加されません.Alamofire(Swiftでのネットワークリクエスト)ソフトウェア財団は、すべてのプロジェクトをNSURLSessionベースのAPIに移行することを提案しています.
次のクラスはAFNetworking 3.0から廃棄されました. AFURLConnectionOperation AFHTTPRequestOperation AFHTTPRequestOperationManager
次のクラスは、NSURLConnectionベースのAPIの内部実装を含む.NSURLSessionを使用して再構築されました. UIImageView+AFNetworking UIWebView+AFNetworking UIButton+AFNetworking
以前にAFHTTPRequestOperationManagerを使用していた場合は、AFHTTPSessionManagerを使用するように移行する必要があります.次のクラスは、両方の遷移間で変化しません. securityPolicy requestSerializer responseSerializer
次に、AFHTTPSessionManagerの簡単な例を挙げます.注意HTTPネットワーク要求は、AFHTTPRequestOperationではなく、NSURLSessionTaskに変更され、成功および失敗したBlockブロックのパラメータも、AFHTTPRequestOperationではなくNSURLSessionTaskに変更される.
AFNetworking 2.x
AFNetworking 3.0
画像ダウンロードは、AlamofireImageアーキテクチャと新しいAFImageDownloaderクラスに従うように再構築されています.このクラスの画像ダウンロードのエージェントはUIButtonとUIImageViewのクラスであり,必要に応じてカスタマイズできるいくつかの方法を提供している.カテゴリでは、リモートピクチャをダウンロードする実際の方法は変わりません.
UIWebViewのクラスは、そのネットワーク要求としてAFHTTPSessionManagerを使用するように再構築される.
AFNetworking 3.0以降UIAlertViewのクラスは時代遅れで廃棄された.このライブラリではなく、アプリケーションが処理すべき論理であるため、UIAlertControllerクラスの計画は提供されていません.
このガイドは、AFNetworking 2の使用を誘導するためのものです.xは、移行の目的を達成するために最新のバージョンAPIにアップグレードされ、新規および変更された設計構造を説明します.
新しいデバイス要件:iOS 7、Mac OS X 10.9、watchOS 2、tvOS 9、&Xcode 7
AFNetworking 3.0で正式にサポートされているiOS 7、Mac OS Xの10.9、watchOS 2、tvOS 9、Xcode 7.旧バージョンのSDKプロジェクトでAFNetworkingを使用したい場合は、READMEの互換性情報を確認してください.
NSURLConnectionのAPIは破棄されました
AFNetworking 1.0はNSURLConnectionのベースAPIの上に構築され、AFNetworking 2.0はNSURLConnectionのベースAPIの使用を開始し、NSURLSessionベースの新しいAPIのオプションを使用します.AFNetworking 3.0は現在、NSURLSessionのAPIに完全に基づいており、メンテナンスの負担を低減し、アップルがNSURLSessionに提供する追加機能を強化することをサポートしています.Xcode 7ではNSURLConnectionのAPIがアップルに正式に廃棄された.APIは引き続き動作するが、新しい機能は追加されず、アップルはNSURLSessionを十分に発展させるためにネットワークベースのすべての機能を通知した.
AFNetworking 2.Xは引き続き重要な危険性とセキュリティパッチを取得しますが、新しい機能は追加されません.Alamofire(Swiftでのネットワークリクエスト)ソフトウェア財団は、すべてのプロジェクトをNSURLSessionベースのAPIに移行することを提案しています.
廃棄されたクラス
次のクラスはAFNetworking 3.0から廃棄されました.
変更されたクラス
次のクラスは、NSURLConnectionベースのAPIの内部実装を含む.NSURLSessionを使用して再構築されました.
いどう
AFHTTPRequestOperationManagerコアコード
以前にAFHTTPRequestOperationManagerを使用していた場合は、AFHTTPSessionManagerを使用するように移行する必要があります.次のクラスは、両方の遷移間で変化しません.
次に、AFHTTPSessionManagerの簡単な例を挙げます.注意HTTPネットワーク要求は、AFHTTPRequestOperationではなく、NSURLSessionTaskに変更され、成功および失敗したBlockブロックのパラメータも、AFHTTPRequestOperationではなくNSURLSessionTaskに変更される.
AFNetworking 2.x
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:@" url" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@" "); } failure:^(AFHTTPRequestOperation *operation, NSError*error) { NSLog(@" "); }];
AFNetworking 3.0
AFHTTPSessionManager *session = [AFHTTPSessionManager manager];
[session GET:@" url" parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) { NSLog(@" "); } failure:^(NSURLSessionDataTask *task, NSError *error) { NSLog(@" "); }];
AFHTTPRequestOperationコアコード
与NSURLConnection对象不同,每个共享应用范围的设置如会话管理、缓存策略、Cookie存储以及URL协议等,这些NSURLSession对象都可以单独进行配置。使用特定的配置来初始化会话,它可以发送任务来获取数据,并上传或下载文件。
在AFNetworking 2.0中,使用AFHTTPRequestOperation,有可能创建一个没有额外开销的独立的网络请求来获取数据。NSURLSession则需要更多的开销,为了获得所要请求的数据。
接下来,将要通过AFHTTPSessionManager创建一个对象,并创建一个任务和启动它。
AFNetworking 2.x
NSURL *URL = [NSURL URLWithString:@""]; NSURLRequest *request = [NSURLRequest requestWithURL:URL]; AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request]; op.responseSerializer = [AFJSONResponseSerializer serializer]; [op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }]; [[NSOperationQueue mainQueue] addOperation:op];
AFNetworking 3.0
NSURL *URL = [NSURL URLWithString:@""]; AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; [manager GET:URL.absoluteString parameters:nil success:^(NSURLSessionTask *task, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure:^(NSURLSessionTask *operation, NSError *error) { NSLog(@"Error: %@", error); }];
UImitの移行
画像ダウンロードは、AlamofireImageアーキテクチャと新しいAFImageDownloaderクラスに従うように再構築されています.このクラスの画像ダウンロードのエージェントはUIButtonとUIImageViewのクラスであり,必要に応じてカスタマイズできるいくつかの方法を提供している.カテゴリでは、リモートピクチャをダウンロードする実際の方法は変わりません.
UIWebViewのクラスは、そのネットワーク要求としてAFHTTPSessionManagerを使用するように再構築される.
UIalertViewのクラスは廃棄されました
AFNetworking 3.0以降UIAlertViewのクラスは時代遅れで廃棄された.このライブラリではなく、アプリケーションが処理すべき論理であるため、UIAlertControllerクラスの計画は提供されていません.