如何处理Xcode警告“以前没有function的原型…”?
这个警告是在一些第三方库中popup一堆。
有没有办法处理它,而不修改代码(例如忽略警告)?
如果我必须修改代码来修复它,我该怎么做呢?
以下是导致警告的代码块之一:
BOOL FBIsDeviceIPad() { #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200 if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { return YES; } #endif return NO; }
通常这样的警告,你可以在你的文件的顶部定义一个函数原型,例如:
BOOL FBIsDeviceIPad();
但是在C中,大括号之间没有任何内容,即()
实际上意味着有任意数量的参数。 相反,定义应该变成(void)
来表示没有参数:
BOOL FBIsDeviceIPad(void); ... BOOL FBIsDeviceIPad(void) { #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200 if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { return YES; } #endif return NO; }
在Xcode4中,转到您的项目的构build设置。 search“原型”。 应该有一个叫做“失踪函数原型”的选项; 禁用它。 您也可以对相关的特定目标执行此操作。
如果这样的函数被定义为内联,没有警告。
只要您的函数针对内联使用进行了优化,这可能就足够了。 http://msdn.microsoft.com/en-us/library/1w2887zk.aspx