,并在我的.PCH文件我有这样的宏: #define localize(s) NSLocalizedString((s), nil)
。
当我尝试在一些.m文件使用这个宏,我收到这样的警告:Implicit declaration of function 'localize' is invalid in C99
。隐声明 - C99
此代码编译没有问题,但我怎么能解决这个问题,所以我没有得到一个警告?
,并在我的.PCH文件我有这样的宏: #define localize(s) NSLocalizedString((s), nil)
。
当我尝试在一些.m文件使用这个宏,我收到这样的警告:Implicit declaration of function 'localize' is invalid in C99
。隐声明 - C99
此代码编译没有问题,但我怎么能解决这个问题,所以我没有得到一个警告?
隐式函数声明是编译器第一次用作函数调用的那些函数声明(与首先看到原型或函数定义的那些函数声明相反)。
显然你的代码中使用localize(foo)
但宏定义是不可见的。可能的原因:你忘了#include
包含本地化宏或头去南部一个不包括localize
宏预编译的文件,所以它留给未展开。
我有这个问题时,我做了一个全球性的NSLog与DLOG取代。我傻傻包括
#define DLog(...) NSLog(...
报表,所以我结束了
#define DLog(...) DLog(...
这引起了警告和连接错误。
我遇到的另一个“愚蠢”的错误是,我的DLog被定义在iOS目标的前缀头部,所以我不得不将它复制到OSX目标的前缀,以及...
我有这个问题,因为我不小心进口CocoaLumberjack这样的:
#import <CocoaLumberjack/DDLog.h>
显然,CocoaLumberjack队模块化的代码多一些;现在在它们自己的头文件中分别定义了像DDLogError
这样的宏。
我替换为import语句和错误走了:
#import <CocoaLumberjack/CocoaLumberjack.h>
在我的情况下,只有一个文件给这个错误。原来,我将它添加到项目的测试目标成员资格(在右侧的文件检查器中)。
我无法重现该问题,它编译并运行得很好,没有警告。 – Lio
它似乎是XCode中的一个错误... 4.0.2我认为。 4.2 beta版工作正常。 – Misa