Vidéo: Tutoriel Swift 2 : Comprendre les propriétés calculées | video2brain.com 2024
Dans Swift, les variables de support sont explicitement déclarées si nécessaire (généralement en code converti à partir d'Objective-C). De plus, les getters n'ont pas besoin d'utiliser le mot-clé get. Les propriétés Swift peuvent être des variables ou des constantes; chaque type peut être stocké ou calculé, comme suit:
-
Déclaration d'une propriété de variable: Une variable est introduite avec le mot-clé var comme dans:
var _fetchedResultsController: NSFetchedResultsController? = nil
-
Déclaration d'une propriété constante: Une constante (c'est-à-dire, une propriété qui ne peut pas être modifiée) est introduite avec le mot clé let. La déclaration précédente peut être modifiée pour déclarer une constante comme suit:
let _fetchedResultsController: NSFetchedResultsController? = nil
-
Déclaration d'une propriété stockée: La déclaration de _fetchedResultsController indiquée dans la liste suivante est une déclaration typique d'une propriété stockée . Une propriété stockée est une propriété stockée dans le cadre d'une instance de la classe, de l'énumération ou de la structure.
// MARK: - Contrôleur de résultats récupérés var fetchedResultsController: NSFetchedResultsController {if _fetchedResultsController! = nil {return _fetchedResultsController!} let fetchRequest = NSFetchRequest () // Édite le nom de l'entité selon le cas. laissez entity = NSEntityDescription. entityForName ("Evénement", inManagedObjectContext: self. managedObjectContext!) fetchRequest. entity = entity // Définit la taille du lot à un nombre approprié. fetchRequest. fetchBatchSize = 20 // Édite la clé de tri selon les besoins. let sortDescriptor = NSSortDescriptor (key: "timeStamp", croissant: false) laisse sortDescriptors = [sortDescriptor] fetchRequest. sortDescriptors = [sortDescriptor] // Modifie le chemin de la clé du nom de la section et le nom du cache si nécessaire. // nil pour le chemin de clé de nom de section signifie "pas de section". let aFetchedResultsController = NSFetchedResultsController (fetchRequest: fetchRequest, managedObjectContext: self.GoldObjectContext!, sectionNameKeyPath: nil, cacheName: "Master") aFetchedResultsController. delegate = self _fetchedResultsController = Erreur de var aFetchedResultsController: NSError? = nul si! _fetchedResultsController!. performFetch (& error) {// Remplace cette implémentation par du code pour gérer // l'erreur de manière appropriée. // abort () provoque l'application pour générer // un journal de plantage et se termine. Vous ne devriez pas utiliser cette // fonction dans une application d'expédition, bien que // puisse être utile pendant le développement. println ("Erreur non résolue (erreur), (erreur. userInfo)") abort ()} return _fetchedResultsController!} var _fetchedResultsController: NSFetchedResultsController?= nilPar défaut, la variable passée dans le setter est nommée newValue,
et Swift utilise le type approprié pour cela.
L'exemple utilise un modèle Objective-C pour une variable de support: Les propriétés stockées Swift n'ont pas besoin de commencer par un caractère spécial tel qu'un trait de soulignement; Cependant, ils doivent être initialisés et recevoir un type (peut-être déduit de l'initialisation) avant d'être utilisés.
var _fetchedResultsController: NSFetchedResultsController? = nil
-
Déclarer une propriété calculée avec un getter et un setter: Ce point mérite un peu d'élucidation. La liste montre un getter basique et un setter d'une propriété Swift. Vous pouvez voir que myVar a une variable de support de myInt. Les mots clés get et set identifient le getter et le setter.
var myInt: Int = 0 var monVar: Int {get {return myInt} set {myInt = nouvelleValeur}} myVar = 20
Voici comment créer une propriété calculée .
En plus des getters et setters illustrés dans la figure suivante, vous pouvez utiliser des observateurs comme indiqué dans la liste suivante. Ce code est dans le DetailViewController. fichier rapide de Locatapp (à partir du modèle d'application Master-Detail).
var detailItem: AnyObject? {didSet {// Mettre à jour la vue. soi. configureView ()}} Définissez un point d'arrêt dans cette méthode et exécutez l'application dans iOS Simulator. Le bouton provoque l'appel de la méthode.
C'est un bon endroit pour appeler un programme de mise à jour de la vue (ce qui est exactement ce qui est fait dans le modèle). Il y a deux observateurs que vous pouvez utiliser:
-
didSet: Ceci est appelé après le fait.
-
willSet: Ceci est appelé juste avant que le réglage ne se produise.