CTMediator icon indicating copy to clipboard operation
CTMediator copied to clipboard

用swift 写的Target_NoTargetAction 就调用不了哟

Open wangkeshuai opened this issue 5 years ago • 4 comments

  • (void)NoTargetActionResponseWithTargetString:(NSString *)targetString selectorString:(NSString *)selectorString originParams:(NSDictionary *)originParams { SEL action = NSSelectorFromString(@"Action_response:"); NSObject *target = [[NSClassFromString(@"Target_NoTargetAction") alloc] init];

    NSMutableDictionary *params = [[NSMutableDictionary alloc] init]; params[@"originParams"] = originParams; params[@"targetString"] = targetString; params[@"selectorString"] = selectorString;

    [self safePerformAction:action target:target params:params]; }

用swift 写的Target_NoTargetAction 就调用不了哟

wangkeshuai avatar Sep 03 '19 01:09 wangkeshuai

无法复现?

casatwy avatar Jan 16 '20 06:01 casatwy

@wangkeshuai 怎么解决的啊

Resoulte avatar Dec 17 '20 06:12 Resoulte

因为在swift里使用NSClassFromString需要加上项目名:NSClassFromString("(workName).(className)") 我的解决方办法是:swift和OC进行混编,Target_NoTargetAction用OC写,然后在OC的代码里再进行一次跳转。

` #import "Target_NoTargetAction.h" #import <CTMediator.h>

@implementation Target_NoTargetAction

-(void)Action_response:(NSDictionary *)params{ NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:params]; dic[kCTMediatorParamsKeySwiftTargetModuleName] = @"workName"; [[CTMediator sharedInstance] performTarget:@"Target" action:@"action" params:dic shouldCacheTarget:NO]; }

@end `

IsLuoYe avatar Nov 18 '22 07:11 IsLuoYe

这是来自QQ邮箱的假期自动回复邮件。   您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。

wangkeshuai avatar Nov 18 '22 07:11 wangkeshuai