2015-09-24 12 views

risposta

16

È possibile utilizzare se #available per eseguire codice specifico per la versione in piccoli blocchi, come i seguenti:

if #available(iOS 9, *) { 
    // use UIStackView for example 
} else { 
    // do something else 
} 

Ma cosa succede se i metodi integrali sono off limits, o forse anche intere classi? Swift 2 copre anche questi scenari, utilizzando l'attributo @available.

@available(iOS 9, *) 
func useStackView() { 
    // use UIStackView for example 
} 

Maggiori dettagli: https://www.hackingwithswift.com/new-syntax-swift-2-availability-checking

+10

In breve, '#available()' è un controllo in fase di esecuzione che restituisce un valore booleano, e '@available()' è un modo per generare in fase di compilazione tempo avvertimenti/errori se il target dell'utente è inferiore a quello con cui lo contrassegni e non stanno facendo il controllo '#available()', eh? – nhgrif

+0

@nhgrif "#available() restituisce un valore booleano". Nota che posso fare: if #available (...) {...} ma non posso fare qualcosa di simile: if! (# Disponibile (...)) {...} – BangOperator

Problemi correlati