我几乎没有Objective-C的知识,但我正在使用Cordova(PhoneGap)创建一个Web应用程序,并且需要操作由其InAppBrowser发送的标头插入。Objective-C错误:没有可见的@interface声明选择器
我设法让自定义页眉与发送请求,我改变了的NSURLRequest到NSMutableURLRequest,然后设置自定义标题是这样的:
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url];
[request setValue:@"test" forHTTPHeaderField:@"Accept-Encoding"];
我的下一个问题是路过的头从JavaScript的。我为参数添加了一个附加选项。参数需要在几个函数(或方法?)之间传递,然后才能到达我可以操作标题的地方。我设法通过了几个函数来传递它们,而NSLog仍然向我展示了我从javascript发出的正确值,但是我陷入了最后的障碍。我无法将其他参数传递给我的最终功能!
我这里有这段代码:
[self.inAppBrowserViewController navigateTo:url withHeaders:headers ];
其中要求是这样定义的NavigateTo功能:
- (void)navigateTo:(NSURL*)url withHeaders:(NSString*)headers
{
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url];
[request setValue:@"test" forHTTPHeaderField:@"Accept-Encoding"];
if (_userAgentLockToken != 0) {
[self.webView loadRequest:request];
} else {
[CDVUserAgentUtil acquireLock:^(NSInteger lockToken) {
_userAgentLockToken = lockToken;
[CDVUserAgentUtil setUserAgent:_userAgent lockToken:lockToken];
[self.webView loadRequest:request];
}];
}
}
我的问题是,它调用的NavigateTo行是给我的错误:“CordovaLib/Classes/CDVInAppBrowser.m:149:6:'CDVInAppBrowserViewController'没有可见的@interface声明选择器'navigateTo:withHeaders:'”
如果拼写错误,通常会出现此错误。 – HAS
三重检查拼写,一切似乎都很好。 –
' - (void)navigateTo:(NSURL *)url withHeaders:(NSString *)headers'这个方法在'CDVInAppBrowserViewController.h'中声明并且在'CDVInAppBrowserViewController.m'中定义了它的实现?和self.inAppBrowserViewController是'CDVInAppBrowserViewController'类的一个实例? –