2016-07-27 114 views
1

我有一個由幾個類導入的「MyConstants.h」文件。Xcode抱怨使用的未使用函數

在這個文件中我有事情,如:

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

此功能廣泛使用通過導入MyConstants.h類。即使如此,Xcode也抱怨說這個函數和其他的函數沒有被使用。

爲什麼?

回答

3

在頭文件中定義一個static函數(或變量)意味着每個導入該頭文件的源文件都將獲得自己的副本。

這是不好的,是編譯器抱怨(不是每個源文件引用此功能)。

讓它static inline代替:

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

謝謝你的提示。你幾乎在那裏。事實上,當我將'static inline'放入時,問題就解決了。只是「內聯」使問題變得更糟。謝謝。當我讓我接受時,我會接受它。 – SpaceDog

+0

順便說一句我以爲靜態詞會強制編譯器在內存中創建具有相同地址的項目的一個版本。 – SpaceDog

+0

@SpaceDog只有將它直接放入源文件,而不是頭文件。 – Droppy