Xcode警告:没有以前的功能原型

tom*_*Dev 2 objective-c ios

我在以下代码中收到警告"没有以前的函数原型'LocStr'":

NSString *LocStr(NSString *const key) {
    return [[NSBundle mainBundle] localizedStringForKey:key value:nil table:nil];
}
Run Code Online (Sandbox Code Playgroud)

所有代码都运行正常,使用此警告将应用程序提交到App Store是否存在问题?这个警告有问题吗?

我可以在Build Settings - > Missing Function Prototypes - > NO中禁用原型警告.但我想确保这个警告不会导致崩溃和将来的拒绝.

任何人?

谢谢!

Jam*_*ter 6

看看这个.您可能违反了哪些可能性?

之前没有'foo'的原型

这意味着GCC找到了一个全局函数定义而没有看到该函数的原型.

o如果函数在多个文件中使用,那么在某个头文件中应该有一个原型.这使功能及其用途不会失去同步

o如果该函数仅用于此文件,请将其设置为静态以保证它永远不会在此文件文档之外使用它是本地函数

[资源]

请不要忽视警告,除非你知道它们是什么,它们可能构成比你意识到的更大的威胁.


与您的问题略有相关,但您可能会发现这更容易本地化您的字符串.这是我使用的解决方案:

#define local(s) NSLocalizedString(s, s)

然后打电话 local(@"myStringKey");