2015-11-26 25 views
17

Domandaimportazione Swift vs importazione Fondazione

Qual è la differenza tra import Swift e import Foundation?

Fino a quando ho letto this comment per Martin R, non sapevo nemmeno che esistesse un import Swift.

lettura

non riuscivo a trovare la documentazione e facendo una ricerca su Google non si presentò più di tanto.

Quello che ho cercato

test fuori dimostra che import Swift non dà alcuna errori di compilazione, ma che in realtà non rispondere alla mia domanda.

Se dovessi indovinare, direi che si importa Swift per i progetti di Swift e che si importa Fondazione per progetti di Objective-C o forse per i progetti di Swift che utilizzano classi Objective-C (come NSString).

Testare questo nel campo da giuoco:

import Foundation 
import Swift 

var str = "Hello, playground" 
let str2: NSString = "hello" 
let str3: String = "hello" 

Commentando import Swift dà nessun errore e str è di String tipo. Tuttavia, il commento di import Foundation restituisce un errore di "tipo non dichiarato" per NSString.

La mia domanda rivisitato

sarei abbastanza felice di abbandonare la Fondazione e basta usare Swift. Quindi ho ragione a importare Swift tutto il tempo a meno che non abbia specificamente bisogno di usare una delle vecchie classi Objective-C?

+5

Basta usare qualsiasi cosa il codice richieda. Come ha detto Martin nel suo commento a cui ti sei collegato, puoi usare la classe più ristretta possibile per quello che stai facendo nel tuo codice. Quindi, se "importa UIKit' se stai usando le classi UIKit. Usa 'import Foundation' se usi le classi base ma non UIKit. Usa 'importa Swift' se non hai bisogno di un corso UIKit o di fondazione. – Rob

+4

Penso che "import Swift' sia sempre implicitamente lì, non c'è bisogno di scriverlo. – Kametrixom

risposta

17

Sì, è necessario solo import Foundation se si desidera accedere a NSObject oa una delle sue sottoclassi. La base è la struttura che porta in quella gerarchia di classe. Tuttavia, è molto probabile che in un progetto ti serva più di un semplice import Swift. Come ha commentato Rob, import UIKit è anche una buona opzione.

Nel caso in cui non lo si sia già letto, Apple spiega il framework Foundation here.