使用Cordova 2.1.0进行IOS应用程序开发。
我在MainViewController.m文件中有以下我的shouldStartLoadWithRequest函数:
- (BOOL)webView:(UIWebView *)webView2
shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSLog(@"shouldStartLoadWithRequest function");
// Intercept custom location change, URL begins with "js-call:"
if ([[[request URL] absoluteString] hasPrefix:@"js-call:"]) {
// Call the given selector
[self performSelector:NSSelectorFromString(@"resetBadgeCount")];
// Cancel the location change
return NO;
}
// Accept this location change
return YES;
}
事情是,在我的index.html中,我有以下内容:-
window.location =“ js-call:resetBadgeCount”;
但是resetBadgeCount是AppDelegate.m文件中存在的函数,每当应调用shouldStartLoadWithRequest函数时,都会出现此错误:
-[MainViewController resetBadgeCount]: unrecognized selector sent to instance 0x199db0
因此,我应该如何更改代码以抑制错误并成功调用resetBadgeCount函数。
最佳答案
目前,您要告诉MainViewController尝试执行选择器。这就是为什么这样说:
-[MainViewController resetBadgeCount]:无法识别的选择器...
尝试将[self performSelector:...]更改为[[[UIApplication sharedApplication]委托] performSelector:...]