4

いくつかのクラスによってインポートされる「MyConstants.h」ファイルがあります。

そのファイル内には、次のようなものがあります。

static BOOL isIndexValid(NSInteger index) {
  return ((index >=0) && (index < 200));
}

この関数は、インポートするクラスで広く使用されていますMyConstants.h。それにしてもXcodeはこの関数などは使っていないと文句を言います。

なんで?

4

2 に答える 2

8

ヘッダー ファイルで関数 (または変数) を定義するというstaticことは、そのヘッダー ファイルをインポートするすべてのソース ファイルが独自のコピーを取得することを意味します。

これはよくないことであり、コンパイラが不満を持っていることです (すべてのソース ファイルがこの関数を参照しているわけではありません)。

static inline代わりに作ってください:

static inline BOOL isIndexValid(NSInteger index) {
  return ((index >=0) && (index < 200));
}
于 2016-07-27T13:50:00.673 に答える