2013-07-24 115 views
0

我几乎没有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:'”

+0

如果拼写错误,通常会出现此错误。 – HAS

+0

三重检查拼写,一切似乎都很好。 –

+0

' - (void)navigateTo:(NSURL *)url withHeaders:(NSString *)headers'这个方法在'CDVInAppBrowserViewController.h'中声明并且在'CDVInAppBrowserViewController.m'中定义了它的实现?和self.inAppBrowserViewController是'CDVInAppBrowserViewController'类的一个实例? –

回答

1

Dec将CDVInAppBrowserViewController.h中的方法替换为

- (void)navigateTo:(NSURL*)url withHeaders:(NSString*)headers; 
相关问题