在一個老的iOS項目中集成了Swift代碼,而後在OC中調用Swift類,一直報錯,針對自定義Swift類提示了"use of undeclared identifier"錯誤,費了老鼻子勁才解決這個問題。ios
剛開始一直解決不了,建立了一個Demo項目進行測試卻發現沒有問題,WTF!objective-c
最後的最後,發現問題竟然是由於我手動建立了一個projectname-Swift.h文件,而這個文件是不該該手動建立的。可是問題是我在Xcode工程中刪除了它,仍然會提示上面的錯誤。swift
根本解決辦法是這樣的:在Finder對應的文件夾中刪除你手動建立的projectname-Swift.h文件。緩存
再來猜想一下緣由,雖然你在Xcode工程中刪除了手動建立的projectname-Swift.h,可是在Xcode中可能還有它的緩存。這種狀況能夠用這個辦法來測試一下,在使用#import "projectname-Swift.h"的地方,按住Cmd鍵,單擊projectname-Swift.h訪問projectname-Swift.h源文件,若是這個源文件的內容是空的,那麼就意味着工程中還使用的是你手動建立的projectname-Swift.h文件。ide
不少文章說要把defines module設置爲YES,但好像沒有這個必要。測試