Closed fengzhihao123 closed 6 years ago
if ([target respondsToSelector:action]) { return [self safePerformAction:action target:target params:params]; } else { // 这里是处理无响应请求的地方,如果无响应,则尝试调用对应target的notFound方法统一处理 SEL action = NSSelectorFromString(@"notFound:"); if ([target respondsToSelector:action]) { return [self safePerformAction:action target:target params:params]; } else { // 这里也是处理无响应请求的地方,在notFound都没有的时候,这个demo是直接return了。实际开发过程中,可以用前面提到的固定的target顶上的。 [self NoTargetActionResponseWithTargetString:targetClassString selectorString:actionString originParams:params]; [self.cachedTarget removeObjectForKey:targetClassString]; return nil; } }
此处判断走的是else,不知道是什么原因,之前swift4.0的时候代码是可以运行的。
在swift下,params需要带一个参数kCTMediatorParamsKeySwiftTargetModuleName,value是target所在项目的项目名。
因为swift4.2需要带上命名空间才能找到target
非常感谢
此处判断走的是else,不知道是什么原因,之前swift4.0的时候代码是可以运行的。