Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to handle the Xcode warning "no previous prototype for function..."?

This warning is popping up a bunch in some third party libraries.

Is there a way to handle it without modifying the code (e.g. ignore the warning)?

If I have to modify the code to fix it how do I do it?

Here's one of the code blocks that's causing a warning:

BOOL FBIsDeviceIPad() {  #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200   if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {    return YES;   }  #endif   return NO; } 
like image 851
Christian Schlensker Avatar asked Aug 17 '11 18:08

Christian Schlensker


1 Answers

Usually with warnings like this you can just define a function prototype at the top of your file, for instance:

BOOL FBIsDeviceIPad(); 

But in C a method with nothing between the braces, i.e. () actually implies there are an arbitrary number of parameters. Instead the definition should become (void) to denote no parameters:

BOOL FBIsDeviceIPad(void);  ...  BOOL FBIsDeviceIPad(void) { #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200   if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {    return YES;   } #endif   return NO; } 
like image 79
appmattus Avatar answered Oct 09 '22 01:10

appmattus