1
是否可以將函數/計算變量標記爲在OS X上可用且在iOS上不可用(反之亦然)?諸如@available(OSX 10.0, iOS unavailable)
之類的東西。@available - 僅在OS X上可用
我瞭解#if OSX
聲明,但是,我想實現的東西,蘋果已經爲NSURLThumbnailKey
做 - 它標記爲ObjC NS_AVAILABLE_MAC(10_10);
,編譯器會抱怨這個符號是不可用的,而不是編譯器不能解決符號。
而且,我發現,在雨燕#if
語句是越野車,例如,定義func myFunc(_, arg1:)
和func myFunc(_, somethingElse:)
的#if
範圍內,將導致一個錯誤說myFunc
已定義。這就是爲什麼我試圖避免使用#if
。
不幸的是,這一切確實是做出OS X 10.9或更低的符號不可用,但它仍然可以在iOS ... –
這是奇怪的,該文檔似乎表明,它應該只適用於OS X 10.10及更高版本,但我已經添加了另一個例子,這是一個棘手的解決方法。 –
是的,但'*'是「未來平臺」,通常包括所有iOS版本(這是許多Foundation方法標記的方式)。但多規格確實奏效,謝謝!我從來沒有想過兩個'@ available'聲明...... –