如何处理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