iOS開発合併ネットワーク要求インタフェース

2462 ワード

ネットワークリクエストインタフェースのマージは基本的です.しかし、私はずっとこれを重視していません.インタフェースごとに更新を要求していることに気づくまで、実はトップページの要求速度を遅らせました.
私が今持っているプロジェクトのトップページは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);
    }];
}