我在以下代码中收到警告“没有以前的函数原型'LocStr'”:
NSString *LocStr(NSString *const key) {
return [[NSBundle mainBundle] localizedStringForKey:key value:nil table:nil];
}
所有代码都运行良好,使用此警告将应用程序提交到App Store是否存在问题?这个警告是否存在问题?
我可以在Build Settings中禁用原型警告 - >缺少功能原型 - >没有。但是我想确保这个警告不会导致崩溃和将来的拒绝。
任何?
谢谢!
答案 0 :(得分:6)
看看这个。您可能违反了哪些可能性?
之前没有`foo'的原型
这意味着GCC找到了一个全局函数定义而没有看到该函数的原型。
o 如果函数在多个文件中使用,那么在某个头文件中应该有一个原型。这保持了功能和 它们用于不同步
o 如果该功能仅用于此文件,请将其设为静态 保证永远不会在此文件之外使用它 记录它是一个本地函数
请不要忽视警告,除非你知道它们是什么,它们可能构成比你意识到的更大的威胁。
<小时/> 与您的问题略有相关,但您可能会发现这更容易本地化您的字符串。这是我使用的解决方案:
#define local(s) NSLocalizedString(s, s)
然后只需致电local(@"myStringKey");