2014-04-29 2 views
4

Xcode에서 수신하는이 오류 경고를 누군가가 해결할 수 있는지 궁금합니다. 나는 32 비트 64 비트와 관련이 있다고 생각한다. 코드가 32 비트와 64 비트에서 모두 작동하도록하고 싶습니다. 코드의 관련 섹션은 다음과 같습니다경고 : 형식이 'long'유형을 지정하지만 인수에 'UIWebViewNavigationType'(일명 'enum UIWebViewNavigationType') 유형이 있습니다.

typedef NS_ENUM(NSInteger, UIWebViewNavigationType) { 
    // ... 
}; 

NSInteger으로 정의된다

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 
    NSLog(@"expected:%ld, got:%ld", (long)UIWebViewNavigationTypeLinkClicked, navigationType); 
    NSLog(@"Main Doc URL:%@", [[request mainDocumentURL] absoluteString]); 
    if (navigationType == UIWebViewNavigationTypeLinkClicked) { 
     [[UIApplication sharedApplication] openURL:[request mainDocumentURL]]; 
     return NO; 

많은 감사

+0

오류/경고 메시지를 게시하십시오. – ZeMoon

+0

@akashg 질문 제목에 경고가 있습니다 ... – Rich

답변

13

UIWebViewNavigationType 32 비트에 int 및 64 비트 플랫폼에서 long입니다. 따라서 당신은 모든 경우에이 경고없이 컴파일 할 (제대로 작동)을 long

NSLog(@"expected:%ld, got:%ld", (long)UIWebViewNavigationTypeLinkClicked, 
           (long)navigationType); 

에 값을 캐스팅해야한다.

+0

그게 다 32 일과 64 일에 모두 작동합니다. 두 번째 '긴'필요합니다. Martin R에게 감사드립니다. –