我创建了一个名为 CustomFramework 的 iOS 框架,并且在 Xcode 创建的 CustomFramework.h 文件中默认包含以下内容
#import <UIKit/UIKit.h>
//! Project version number for CustomFramework.
FOUNDATION_EXPORT double CustomFrameworkVersionNumber;
//! Project version string for CustomFramework.
FOUNDATION_EXPORT const unsigned char CustomFrameworkVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <CustomFramework/PublicHeader.h>
当我构建项目时,我收到这些警告
No previous extern declaration for non-static variable 'CustomFrameworkVersionNumber'
No previous extern declaration for non-static variable 'CustomFrameworkVersionString'
知道为什么默认框架创建会发出这些警告吗?
在 C 系列语言中,这是由未明确定义为
static
或在头文件中声明为 extern
的变量引起的。
您有三种选择来处理它。
将
static
关键字放在定义前面。
static FOUNDATION_EXPORT double CustomFrameworkVersionNumber;
static FOUNDATION_EXPORT const unsigned char CustomFrameworkVersionString[];
为每个变量创建一个单独的头文件,其中包含
extern
定义。-Wmissing-variable-declarations
这个问题与这个问题类似。