Files
yinmeng-ios/xplan-ios/Main/MVP/Api/Api.m
2021-09-06 18:51:44 +08:00

40 lines
1.3 KiB
Objective-C

//
// Api.m
// xplan-ios
//
// Created by zu on 2021/9/6.
//
#import "Api.h"
@implementation Api
+ (void)makeRequest:(NSString *)route method:(HttpRequestHelperMethod)method completion:(HttpRequestHelperCompletion)completion, ... {
va_list arg_lists;
va_start(arg_lists, completion);
// 获取第一个参数 __FUNCTION__ ,然后解析出来 key 。
const char *functionName = va_arg(arg_lists, const char *);
NSString *fn = [[NSString alloc] initWithUTF8String:functionName];
// NSLog 一下 __FUNCTION__ 就知道为什么这么截取了。
NSRange blankRange = [fn rangeOfString:@":"];
NSUInteger start = blankRange.location + 1;
NSUInteger length = fn.length - start - 2;
NSString *fromatParamKeys = [fn substringWithRange:NSMakeRange(start, length)];
// 构造请求的 NSMutableDictionary *params 。
NSMutableDictionary *params = [NSMutableDictionary dictionary];
NSArray *paramKeys = [fromatParamKeys componentsSeparatedByString:@":"];
NSEnumerator *enumerator = [paramKeys objectEnumerator];
NSString *value = nil;
while((value = va_arg(arg_lists, NSString*))){
[params setValue:value forKey:enumerator.nextObject];
};
va_end(arg_lists);
[HttpRequestHelper request:route method:method params:params completion:completion];
}
@end