2014-10-31 35 views
4

當我使-Weverything定製編譯器標誌和模塊在Xcode的支持,它告訴我切換到使用模塊 - 所以我改變這種類型的事情:如何確定Xcode是否支持模塊?

#import <Foundation/Foundation.h> 

這樣:

@import Foundation; 

...一切都很好,直到有人稍後將其中一個類導入其未啓用模塊的舊項目中,此時他們必須將@import恢復爲#import。

我的問題是這樣的:是否有可能將這些包裝在某種預處理器宏中以在編譯時挑出正確的宏?就是我希望的

例子:

#ifdef MODULES_SUPPORTED 
    @import Foundation; 
#else 
    #import <Foundation/Foundation.h> 
#endif 

感謝

Jase

回答

3

這是一個老問題,但要知道如何做到這一點也需要。這裏是一個辦法做到這一點:

#ifdef __has_feature(modules) 
    @import Foundation; 
#else 
    #import <Foundation/Foundation.h> 
#endif 

編號:CLANG LANGUAGE EXTENSIONS

+0

完美。這樣可行! – 2016-07-06 16:54:57

相關問題