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;
}
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;
}
In Xcode4, go to your project's Build Settings. Search for "prototype". There should be an option called "Missing Function Prototypes"; disable it. You can also do this to the specific target(s) in question.
There are no warnings if such a function is defined as inline.
This may suffice as long as your function is optimized for inline use.
http://msdn.microsoft.com/en-us/library/1w2887zk.aspx