美文网首页
网络请求回调的小思考

网络请求回调的小思考

作者: 杨柳小易 | 来源:发表于2018-05-11 15:28 被阅读37次
    #pragma mark - PTVNetworkDelegate
    
    - (void)response:(NetworkResultState *)result {
        NSString *errNo = [NSString stringWithFormat:@"%@", result.data[@"errno"]];
        NSString *errMessage = [NSString stringWithFormat:@"%@", result.data[@"errmsg"]];
        
        if (IS_STRING_NULL(errMessage)) {
            errMessage = getOrderFailMessage;
        }
        
        if ([result.taskName isEqualToString:requestCreateOrderKey]) {
            if (IS_STRING_NULL(errMessage) || [errMessage isEqualToString:@"(null)"]) {
                errMessage = getOrderFailMessage;
            }
            
            if (result.errCode == 0 && [errNo isEqualToString:@"0"]) {
                self.orderId = [NSString stringWithFormat:@"%@", result.data[@"data"][@"order_id"]];
    
                if (IS_STRING_NULL(self.orderId)) {
                    if (self.rechargeCompleteBlock) {
                        self.rechargeCompleteBlock(NO, errMessage);
                        [self compeletePayCatMoney];
                    }
                } else {
                    [self requestProductData];
                }
            } else {
                if (self.rechargeCompleteBlock) {
                    self.rechargeCompleteBlock(NO, errMessage);
                    [self compeletePayCatMoney];
                }
            }
        } else if ([result.taskName isEqualToString:requestVerifyReceiptKey]) {
    
    

    这是网络请求的回调。因为项目中封装了AFNetWorking 每次请求都和一个key对应起来。如果每个模块的网络请求特别多。这里if else 会有几十个,也就是几百行,即使每个if else 单独封装成函数,也有几十个if else..

    可以利用字典,保存好key 和 SEL ,然后回调回来直接调用。类似:

    NSMutableDictionary *dic = @{}.mutableCopy;
        dic[@"request1"] = NSStringFromSelector(@selector(requestProductData));
    
    ////网络请求回来就可以调用:
        [self performSelector:NSSelectorFromString(dic[@"request1"]) withObject:nil afterDelay:0];
    

    也便便扩展。

    问题,dic值多了,内容占用也大,所以,使用不频繁的,从dic中删除掉

    相关文章

      网友评论

          本文标题:网络请求回调的小思考

          本文链接:https://www.haomeiwen.com/subject/nxifdftx.html