iOS: support swift plugin and library

This commit is contained in:
pengfei.zhou
2023-07-07 18:31:06 +08:00
committed by jingpeng
parent e981944352
commit 01b30f48bb
7 changed files with 110 additions and 9 deletions

View File

@@ -54,7 +54,7 @@ - (id)callNativeWithContextId:(NSString *)contextId module:(NSString *)module me
}
- (id)createParamWithMethodName:(NSString *)method context:(DoricContext *)context callbackId:(NSString *)callbackId argument:(id)argument {
if ([method isEqualToString:@"withPromise"]) {
if ([method isEqualToString:@"withPromise"] || [method isEqualToString:@"promise"]) {
return [[DoricPromise alloc] initWithContext:context callbackId:callbackId];
}
return argument;
@@ -71,7 +71,11 @@ - (id)findClass:(Class)clz target:(id)target context:(DoricContext *)context met
NSString *methodName = [NSString stringWithCString:sel_getName(method_getName(methods[i])) encoding:NSUTF8StringEncoding];
NSArray *array = [methodName componentsSeparatedByString:@":"];
if (array && [array count] > 0) {
if ([array[0] isEqualToString:name]) {
NSString *firstPart = array[0];
if (![firstPart isEqualToString:name]) {
firstPart = [firstPart componentsSeparatedByString:@"With"][0];
}
if ([firstPart isEqualToString:name]) {
isFound = YES;
SEL selector = NSSelectorFromString(methodName);
NSMethodSignature *methodSignature = [target methodSignatureForSelector:selector];