2017-03-03 77 views
0

我知道斯威夫特具有預處理指令是檢查操作系統:斯威夫特系統檢查版本在Ubuntu

#if os(iOS) 
    ... 
#elseif os(OSX) 
    ... 
#endif 

但是,在網上搜索後,我發現沒有什麼是檢查操作系統是否Ubuntu Linux系統。 有沒有辦法做到這一點?我知道swift最近纔在Ubuntu上工作,所以我意識到在撰寫本文時可能沒有辦法。

+0

'#if os(Linux)' - 這裏的示例:http://stackoverflow.com/questions/41035180/swift-arc4random-uniformmax-in-linux。 –

+0

並記錄在此處:https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Statements.html#//apple_ref/doc/uid/TP40014097-CH33-ID538。 –

+0

@MartinR,謝謝你想寫一個答案所以我可以接受? – kmn

回答

2

在Swift中,#if ... #endif不是預處理器語句,而是 包含"Conditional Compilation Block"。對於os()平臺條件 有效的參數是(目前)記錄爲

macOS, iOS, watchOS, tvOS, Linux 

因此#if os(Linux)檢查Linux平臺。 一個典型的例子是

#if os(Linux) 
import Glibc 
#else 
import Darwin 
#endif 

從Linux和蘋果平臺的C庫導入功能。