In Xcode 6 beta 4, Swift aggiunge il supporto per access control. Questo ti dà il controllo completo su quale parte del codice è accessibile all’interno di un singolo file, disponibile attraverso il progetto, o reso pubblico come API per tutti coloro che importano dati dalla vostra applicazione. I tre livelli di accesso inclusi in questa release sono:

-soggetti privati possono accedere solo all’interno dei file di cui hanno l’autorizzazione.
-entità interne possono accedere all’intero modulo che include la definizione (ad esempio, un app o target framework).
-enti pubblici possono accedere ai dati come API, ed è possibile accedervi da qualsiasi file che importa il modulo, ad esempio, come un framework utilizzato in molti dei vostri progetti.
Per impostazione predefinita, tutti i soggetti hanno accesso interno e Il tuo codice framework ha bisogno di essere aggiornato per definire API pubbliche.

Il livello di accesso privato è il più restrittivo, rende facile nascondere i dettagli di implementazione di altri file di origine. Per strutturare correttamente il codice, si può tranquillamente utilizzare funzioni come estensioni e funzioni di primo livello senza esporre tale codice al resto del progetto.

Ecco una classe di esempio:

public class ListItem {

	// Public properties.
	public var text: String
	public var isComplete: Bool

	// Readable throughout the module, but only writeable from within this file.
	private(set) var UUID: NSUUID

	public init(text: String, completed: Bool, UUID: NSUUID) {
		self.text = text
		self.isComplete = completed
		self.UUID = UUID
	}

	// Usable within the framework target, but not by other targets.
	func refreshIdentity() {
		self.UUID = NSUUID()
	}

	public override func isEqual(object: AnyObject?) -> Bool {
		if let item = object as? ListItem {
			return self.UUID == item.UUID
		}
		return false
	}
}