ios - the - swift4 enum
Advertencia: Format especifica el tipo ''long'' pero el argumento tiene el tipo ''UIWebViewNavigationType''(tambiƩn ''enum UIWebViewNavigationType'') (1)
UIWebViewNavigationType
se define como
typedef NS_ENUM(NSInteger, UIWebViewNavigationType) {
// ...
};
y NSInteger
es int
en plataformas de 32 bits y long
en 64 bits. Por lo tanto, debe convertir el valor a long
NSLog(@"expected:%ld, got:%ld", (long)UIWebViewNavigationTypeLinkClicked,
(long)navigationType);
para hacer que se compile sin advertencias (y funcione correctamente) en todos los casos.
Me preguntaba si alguien me puede ayudar con esta advertencia de error que estoy recibiendo en Xcode. Creo que tiene algo que ver con 32 v 64 bits. Me gustaría que el código funcione tanto en 32 como en 64 bits. La sección relevante del código es:
- (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;
muchas gracias