objective-c - 如何处理 Xcode 警告 "no previous prototype for function..."?

标签 objective-c xcode warnings

这个警告在一些第三方库中弹出了一堆。

有没有办法在不修改代码的情况下处理它(例如忽略警告)?

如果我必须修改代码来修复它,我该怎么做?

这是导致警告的代码块之一:

BOOL FBIsDeviceIPad() {
 #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200
  if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
   return YES;
  }
 #endif
  return NO;
}

最佳答案

通常有这样的警告,你可以在文件顶部定义一个函数原型(prototype),例如:

BOOL FBIsDeviceIPad();

在 C 中,大括号之间没有任何内容的方法,即 () 实际上意味着存在任意数量的参数。相反,定义应该变成 (void) 来表示 no 参数:

BOOL FBIsDeviceIPad(void);

...

BOOL FBIsDeviceIPad(void) {
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200
  if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
   return YES;
  }
#endif
  return NO;
}

关于objective-c - 如何处理 Xcode 警告 "no previous prototype for function..."?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7097660/

相关文章:

ios - UITableView reloadData 什么都不做(UITableView 不是 nil)

ios - 无法识别的选择器发送到实例 ios

objective-c - UIDocumentInteractionController 向菜单添加自定义操作(例如电子邮件、保存到照片)

objective-c - 正确使用ARC(自动引用计数)?

ios - 哪个是通用 iOS 应用启动画面 iOS 12 的最佳方式?

warnings - 我应该向 STDERR 或 STDOUT 输出警告吗?

c++ - 如果变量未初始化,Visual Studio 2017 不会生成任何警告?

perl - 什么是experimental::private_use?

objective-c - 在 iOS 中设置标题

ios - 构建失败并出现错误 Command/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc