Video: Existentialism: Crash Course Philosophy #16 2025
I Swift angives eksplicitte variabler eksplicit, hvis det er nødvendigt normalt i kode konverteret fra Objective-C). Også getters behøver ikke bruge get-søgeordet. Swift egenskaber kan være variabler eller konstanter; Hver type kan enten gemmes eller beregnes som følger:
-
Deklarering af en variabel egenskab: En variabel introduceres med søgeordet var som i:
var _fetchedResultsController: NSFetchedResultsController? = nul
-
Deklarer en konstant egenskab: En konstant (det vil sige en egenskab, der ikke kan ændres) introduceres med søgeordet lad. Den foregående erklæring kan ændres for at erklære en konstant som følger:
lad _fetchedResultsController: NSFetchedResultsController? = nul
-
Deklarering af en gemt ejendom: Erklæringen af _fetchedResultsController vist i den følgende liste er en typisk angivelse af en gemt ejendom . En lagret ejendom er en ejendom gemt som en del af en forekomst af klassen, opgørelsen eller strukturen.
// MARK: - Fetched resultat controller blev hentetResultsController: NSFetchedResultsController {if _fetchedResultsController! = nul {return _fetchedResultsController!} lad fetchRequest = NSFetchRequest () // Rediger enhedens navn som det passer. lad enhed = NSEntityDescription. entityForName ("Event", inManagedObjectContext: self. managedObjectContext!) fetchRequest. enhed = enhed // Sæt batchstørrelsen til et passende antal. fetchRequest. fetchBatchSize = 20 // Rediger sorteringsnøglen efter behov. lad sortDescriptor = NSSortDescriptor (nøgle: "timeStamp", stigende: false) lad sortDescriptors = [sortDescriptor] fetchRequest. sortDescriptors = [sortDescriptor] // Rediger sektionsnavnets nøglebane og cachenavn, hvis det er relevant. // nil for sektionens navnestang betyder "ingen sektioner". lad aFetchedResultsController = NSFetchedResultsController (hentRequest: fetchRequest, managedObjectContext: selv. managedObjectContext!, sectionNameKeyPath: nil, cacheName: "Master") aFetchedResultsController. delegate = self _fetchedResultsController = aFetchedResultsController var fejl: NSError? = nul hvis! _fetchedResultsController!. performFetch (& error) {// Udskift denne implementering med kode for at håndtere // fejlen korrekt. // abort () får applikationen til at generere en // crash log og afslutte. Du bør ikke bruge denne //-funktion i et forsendelsesprogram, selv om det // kan være nyttigt under udvikling. println ("Uopløst fejl (fejl), (fejl. userInfo)") afbryd ()} returnér _fetchedResultsController!} var _fetchedResultsController: NSFetchedResultsController?= nilBy default er variablen, der sendes ind i setteren, navngivet newValue, , og Swift bruger den relevante type til den.
Eksemplet bruger et mål-C-mønster til en backing-variabel: Swift-lagrede egenskaber behøver ikke at begynde med et specialtegn, som f.eks. Understregning; De skal imidlertid initialiseres og gives en type (måske udledt af initialiseringen), inden de anvendes.
var _fetchedResultsController: NSFetchedResultsController? = nul
-
Deklarere en beregnet ejendom med en getter og en setter: Dette punkt fortjener en smule belysning. Noteringen viser en grundlæggende getter og setter af en Swift ejendom. Du kan se, at myVar har en backing-variabel af myInt. De get og sæt søgeord identificere getter og setter.
var minInt: Int = 0 var myVar: Int {get {return myInt} sæt {myInt = newValue}} myVar = 20
Sådan skaber du en beregnet ejendom .
Ud over getters og settere vist i nedenstående figur kan du bruge observatører som vist i næste liste. Denne kode er i DetailViewController. hurtig fil af Locatapp (fra Master-Detail Application-skabelonen).
var detailItem: AnyObject? {didSet {// Opdater visningen. selv. configureView ()}} Indstil et breakpoint i denne metode og kør appen i iOS Simulator. Knappen får fremgangsmåden til at blive kaldt.
Dette er et godt sted at kalde en visningsopdaterer (hvilket er præcis, hvad der sker i skabelonen). Der er to observatører, du kan bruge:
-
didSet: Dette kaldes efter faktum.
-
willSet: Dette kaldes lige før indstillingen sker.