iOS開発合併ネットワーク要求インタフェース
2462 ワード
ネットワークリクエストインタフェースのマージは基本的です.しかし、私はずっとこれを重視していません.インタフェースごとに更新を要求していることに気づくまで、実はトップページの要求速度を遅らせました.
私が今持っているプロジェクトのトップページは4つのインタフェースを要求する必要があります.ユーザーはトップページに入った後、それぞれインタフェースを要求します.インタフェースは1つの要求が完了した後、tableViewをリフレッシュし、ドロップダウン・リフレッシュの状態をキャンセルします.
ネットワーク要求は非同期であり,すなわち,4つのネットワーク要求は同時に行うことができ,統合後に比べて要求時間は理論的には以前の4分の1しか必要としない.
コード実装:
私が今持っているプロジェクトのトップページは4つのインタフェースを要求する必要があります.ユーザーはトップページに入った後、それぞれインタフェースを要求します.インタフェースは1つの要求が完了した後、tableViewをリフレッシュし、ドロップダウン・リフレッシュの状態をキャンセルします.
ネットワーク要求は非同期であり,すなわち,4つのネットワーク要求は同時に行うことができ,統合後に比べて要求時間は理論的には以前の4分の1しか必要としない.
コード実装:
/**
*/
- (void)getData{
dispatch_group_t group = dispatch_group_create();
//
dispatch_group_enter(group);
[self getNotifyList:group];
//
dispatch_group_enter(group);
[self getRankList:group];
//
dispatch_group_enter(group);
[self getOrderNumData:group];
//
dispatch_group_enter(group);
[self getServiceIndicators:group];
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
[self.HomePageCollectionView reloadData];
[self.HomePageCollectionView.mj_header endRefreshing];
});
}
/**
*/
- (void)getNotifyList:(dispatch_group_t)group{
WEAKSELF
[[JKXNetInterface startInterface] getNotifyListWithTask:^(NSURLSessionDataTask *NetTask) {
} Withblock:^(BOOL isSuccessful, id result, NSString *error) {
if(isSuccessful){
//
}
dispatch_group_leave(group);
}];
}
/**
*/
- (void)getOrderNumData:(dispatch_group_t)group{
WEAKSELF
[[JKXNetInterface startInterface] getOrderNumWithTask:^(NSURLSessionDataTask *NetTask) {
} Withblock:^(BOOL isSuccessful, id result, NSString *error) {
if (isSuccessful) {
//
}
dispatch_group_leave(group);
}];
}
/**
*/
- (void)getServiceIndicators:(dispatch_group_t)group{
WEAKSELF
[[JKXNetInterface startInterface] getServiceIndexWithTask:^(NSURLSessionDataTask *NetTask) {
} Withblock:^(BOOL isSuccessful, id result, NSString *error) {
if(isSuccessful){
//
}
dispatch_group_leave(group);
}];
}
/**
*/
- (void)getRankList:(dispatch_group_t)group{
WEAKSELF
[[JKXNetInterface startInterface] getRankListWithTask:^(NSURLSessionDataTask *NetTask) {
} Withblock:^(BOOL isSuccessful, id result, NSString *error) {
if (isSuccessful) {
//
}
dispatch_group_leave(group);
}];
}