Skip to main content

Come aggiungere Swift a un progetto Objective-C

Swift, il primo linguaggio di programmazione ideato da Apple per i suoi device è stato presentato appena lo scorso Giugno ma sta rapidamente guadagnando popolarità. E’ ragionevole aspettarsi che nei prossimi anni (magari 4 o 5) Apple annuncerà la fine del supporto a Objective-C trasformando Swift nell’unico linguaggio supportato.

Aggiungere Swift al vostro progetto Objective-C

Swift può essere usato insieme a Objective-C, questo facilita il processo di transizione e vi permette di iniziare immediatamente ad aggiungere codice Swift alla vostra app scritta in Objective-C.

  1. Aprite con Xcode 6 il vostro progetto scritto in Objective-C
  2. Scegliete File > New > File…
  3. Sulla sinistra selezionate iOS (o OS X) in base alla piattaforma usata dal progetto
  4. Scegliete Swift File
  5. Premete Next

New Swift File

  1. Digitate il nome del nuovo sorgente Swift (ad esempio: MySwiftClass)
  2. Premete Create

Would you like to configure an Objective-C bridging header?

 

  1. Premete Yes

Usare una classe Swift da Objective-C

A questo punto potete scrivere classi utilizzando Swift (File >New > File…). Per utilizzare una classe Swift all’interno di una file Objective-C è nessario:

  1. aggiungere alla classe Swift l’annotazione @objc
  2. assicurarsi che classe Swift estenda NSObject (direttamente o indirettamente)
  3. aggiungere al file Objective-C il seguente import

Ecco un esempio di classe Swift che soddisfa le condizioni 1 e 2.

Ed ecco un esempio di import che soddisfa la condizione 3 (dove il nome del progetto è MyProject):

A questo punto potete utilizzare la classe MySwiftClass all’interno del codice Objective-C

Usare una classe Objective-C da Swift

Per fare in modo che una classe Objective-C sia visibile da una Swift bisogna:

  1. aprire il file NomeProgetto-Bridging-header.h
  2. aggiungere l’import al file header della classe Objective-C

Infine non resta che aprire il file Swift e utilizzare la classe Objective-C.

Luca Angeletti

Trainer • Developer • Writer

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *