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
}
}
Lascia un commento