ios - Swift iOS 14 Firebase 警告——这个旧式函数定义之前没有原型(prototype)

原文 标签 ios swift firebase google-analytics-firebase

我有一个与 Firebase 集成的应用程序,可以使用 cocoapods 连接分析。它在 iOS 13 上运行良好,没有任何黄色警告,但是当我为目标 iOS 14 安装新的 cocoa pod 并构建应用程序时,我收到 6 条黄色警告消息
“XXXPods/GoogleUtilities/GoogleUtilities/Logger/GULLogger.m:130:20:这个旧式函数定义之前没有原型(prototype)”
GULLogger.m Warnings
当我在网上寻找答案时,只有少数人指着 Flutter。我没有这个应用程序的 Flutter,我认为我不需要它。有没有其他人有同样的问题?请如何为 iOS 14 静音?
我可以将 pod 降级到 iOS 13,但重点是更新版本。
感谢您的任何帮助/指导

最佳答案

所以这是 中的新警告Xcode 12.5 (我相信)用于在这些 SDK 中声明的旧 C 风格函数或使用该语法的任何旧风格代码。

这是什么意思?
do-not-leave-the-parameter-list-of-a-function-blank---use-void

if a function declaration does not include arguments, as in double atof();, that too is taken to mean that nothing is to be assumed about the arguments of atof; all parameter checking is turned off. This special meaning of the empty argument list is intended to permit older C programs to compile with new compilers. But it's a bad idea to use it with new programs. If the function takes arguments, declare them; if it takes no arguments, use void.

So this is how your function prototype should look:

int foo(void);

And this is how the function definition should be:

int foo(void)
{
    ...
    <statements>
    ...
    return 1;
}

One advantage of using the above, over int foo() type of declaration (ie. without using the keyword void), is that the compiler can detect the error if you call your function using an erroneous statement like foo(42). This kind of a function call statement would not cause any errors if you leave the parameter list blank. The error would pass silently, undetected and the code would still execute.



我们可以做什么?
可能会为 Firebase SDK 提出一张票来解决(如果还没有的话)。

这是多大的问题?
取决于实现细节。可能就像更换 () 一样简单与 (void)对于所有这些功能。如上所述,否则可能会涉及更多。

Firebase 团队会定期维护 SDK,我们很快就会在即将发布的版本中看到对此的修复。

关于ios - Swift iOS 14 Firebase 警告——这个旧式函数定义之前没有原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67951214/

相关文章:

ios - 向玩家添加观察者时出错

ios - 调用 API 时不显示 UICollectionView 单元格

ios - Swift 中的整数溢出

swift - 自动从 Firebase 数据库中删除数据

ios - Firebase服务器时间戳和非64位设备:存储在“Int”中的整数文字“…”溢出

不推荐使用 iOS 6 iAd 属性和方法

c++ - 即使读取成功,最终计数为 0

ios - 用户正确回答后如何清除文本字段?

swift - 如何在 Swift 5.1 中修复 "Cannot invoke ' send' without arguments"

javascript - #AskFirebase FCM 网络推送 token 失效时间