我有一个由多个类导入的“MyConstants.h”文件。
在该文件中,我有以下内容:
static BOOL isIndexValid(NSInteger index) {
return ((index >=0) && (index < 200));
}
这个函数被导入的类广泛使用MyConstants.h
。即便如此,Xcode 还是抱怨这个函数和其他函数没有被使用。
为什么?
我有一个由多个类导入的“MyConstants.h”文件。
在该文件中,我有以下内容:
static BOOL isIndexValid(NSInteger index) {
return ((index >=0) && (index < 200));
}
这个函数被导入的类广泛使用MyConstants.h
。即便如此,Xcode 还是抱怨这个函数和其他函数没有被使用。
为什么?
在头文件中定义static
函数(或变量)意味着导入该头文件的每个源文件都将获得自己的副本。
这不好,这就是编译器所抱怨的(不是每个源文件都引用这个函数)。
static inline
改为:
static inline BOOL isIndexValid(NSInteger index) {
return ((index >=0) && (index < 200));
}
尝试__unused
在返回类型和函数名之间插入,它适用于 Xcode 10.2
static BOOL __unused isIndexValid(NSInteger index) {
return ((index >=0) && (index < 200));
}
希望对您有所帮助。