2016-10-27 67 views
1

在一個較舊的項目中我在幾個地方使用了TARGET_OS_IPHONE預編譯器宏來實現一些特定於iOS的東西。Xcode TARGET_OS_IPHONE似乎困惑,錯誤或配置錯誤?

這用於在過去良好工作,但目前Xcode似乎有這樣的宏「倒置」,即代碼完成不能在#if TARGET_OS_IPHONE塊內工作,即使我的構建目標是iOS應用程序。也沒有語法突出顯示。它的語法突出顯示和代碼完成#else塊中的內容應該只發生在macOS目標上。 據我所知,雖然編譯正確,但編輯器似乎很困惑。這使編輯代碼非常惱人。我正在使用Xcode 8.1 GM。

可能這是一個Xcode錯誤,或者有可能在我的項目中有一些配置搞砸了嗎?看起來Xcode正在尋找錯誤的頭文件。當我在CMD單擊TARGET_OS_IPHONE宏,它定位到該文件:

xcode nav bar

具有適用於MacOS宏值,而不是適用於iOS的那些:

#define TARGET_OS_OSX    1 
#define TARGET_OS_IPHONE   0 

看來,它選擇錯誤的SDK。不知道在哪裏看/改變回正常。我查看了目標構建設置,並且它們看起來沒問題。

謝謝!

+0

你有沒有提到這個,http://stackoverflow.com/a/3748348/6742121? @Jakob – KAR

+0

是的,謝謝 - 目標的構建和運行良好,但這個問題的建議並沒有緩解我所看到的問題。 – Jakob

回答

0

這似乎是一個Xcode 8.1的錯誤。問題似乎已經在Xcode 8.2 beta中解決了。

+0

Xcode 8.3.2中這個絕對令人惱火的問題仍然非常活躍 – George