AppHost
AppHost copied to clipboard
使用中遇到的问题
if (action == nil) {
return false;
}
SEL sel = nil;
if (paramDict == nil || paramDict.allKeys.count == 0) {
if (callbackKey.length == 0) {
sel = NSSelectorFromString([NSString stringWithFormat:@"%@", action]);
} else {
sel = NSSelectorFromString([NSString stringWithFormat:@"%@WithCallback:", action]);
}
} else {
if (callbackKey.length == 0) {
sel = NSSelectorFromString([NSString stringWithFormat:@"%@:", action]);
} else {
sel = NSSelectorFromString([NSString stringWithFormat:@"%@:callback:", action]);
}
}
if (![self respondsToSelector:sel]) {
return NO;
}
[self runSelector:sel withObjects:[NSArray arrayWithObjects:paramDict, callbackKey, nil]];
AHLog(@"agruments is %@",[NSArray arrayWithObjects:paramDict, callbackKey, nil]);
return YES;
这块的代码有点疑问? 这里定义的sel 跟参数是不是对不上, 当paramDict 定义为空且有callback的时候 sel为actionWithCallback:就一个参数 但是runSelector参数实际为两个造成exception。同理paramDict 为nil的时候 callback不为nil的时候NSArray arrayWithObjects:paramDict, callbackKey, nil]实际为空数组,也会有异常。
@zhouwude 抱歉,回复太迟。最近忙其他事情,这个项目好久没更新了,等我忙完这种 WebView 优化上线之后,会补充些新的逻辑尽量。
你的问题上对的,没有对:paramDict, callbackKey ,判 null,因为我使用过程中没有这种情况,所以没有 crash 过。你可以自行改下。。我之后会重写这些逻辑, 把 拦截的逻辑处理和 WebView 优化分为两个部分,单独可使用。