いくつかのクラスによってインポートされる「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));
}