2013-07-24 75 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; 
相關問題