40 lines
1.3 KiB
Objective-C
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
|