#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
中删除掉
网友评论