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

时间:2011-10-22 23:31:43

标签: ios objective-c

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

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

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

我可以在Build Settings中禁用原型警告 - >缺少功能原型 - >没有。但是我想确保这个警告不会导致崩溃和将来的拒绝。

任何?

谢谢!

1 个答案:

答案 0 :(得分:6)

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

  

之前没有`foo'的原型

     

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

     

o 如果函数在多个文件中使用,那么在某个头文件中应该有一个原型。这保持了功能和   它们用于不同步

     

o 如果该功能仅用于此文件,请将其设为静态    保证永远不会在此文件之外使用它    记录它是一个本地函数

[Source]

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

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

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

然后只需致电local(@"myStringKey");