Video: Neutron Stars – The Most Extreme Things that are not Black Holes 2025
vanligvis i kode konvertert fra Objective-C). Også, getters trenger ikke å bruke få søkeordet. Swift egenskaper kan være variabler eller konstanter; Hver type kan enten lagres eller beregnes som følger:
-
Deklarere en variabel egenskap: En variabel er introdusert med søkeordet var som i:
var _fetchedResultsController: NSFetchedResultsController? = null
-
Deklarere en fast eiendom: En konstant (det vil si en egenskap som ikke kan endres) blir introdusert med nøkkelordet. Den forrige erklæringen kan endres for å erklære en konstant som følger:
la _fetchedResultsController: NSFetchedResultsController? = null
-
Deklarering av en lagret eiendom: Erklæringen av _fetchedResultsController vist i følgende oppføring er en typisk deklarasjon av en lagret eiendom . En lagret egenskap er en eiendom lagret som en del av en forekomst av klassen, opptelling eller struktur.
// MARK: - Fetched results controller var hentetResultsController: NSFetchedResultsController {if _fetchedResultsController! = null {return _fetchedResultsController!} la fetchRequest = NSFetchRequest () // Rediger navnet på enheten etter behov. la enheten = NSEntityDescription. entityForName ("Event", inManagedObjectContext: self. managedObjectContext!) fetchRequest. enhet = enhet // Sett batchstørrelsen til et passende nummer. fetchRequest. fetchBatchSize = 20 // Rediger sorteringsnøkkelen etter behov. la sortDescriptor = NSSortDescriptor (nøkkel: "timeStamp", stigende: false) la sortDescriptors = [sortDescriptor] fetchRequest. sortDescriptors = [sortDescriptor] // Rediger delenavnens nøkkelbane og cachenavn hvis det er aktuelt. // nil for delenavn-nøkkelbanen betyr "ingen seksjoner". la aFetchedResultsController = NSFetchedResultsController (fetchRequest: fetchRequest, managedObjectContext: selv. managedObjectContext!, sectionNameKeyPath: null, cacheName: "Master") aFetchedResultsController. delegate = self _fetchedResultsController = aFetchedResultsController var feil: NSError? = null hvis! _fetchedResultsController!. performFetch (& error) {// Erstatt denne implementeringen med kode for å håndtere // feilen riktig. // abort () forårsaker at applikasjonen skal generere en // krasjlogg og avslutte. Du bør ikke bruke denne //-funksjonen i et fraktprogram, selv om det // kan være nyttig under utviklingen. println ("Uoppløst feil (feil), (feil. userInfo)") avbryte ()} returnere _fetchedResultsController!} var _fetchedResultsController: NSFetchedResultsController?= nilVi standard er variabelen som er sendt inn i setter navnet newValue,
og Swift bruker riktig type for den.
Eksemplet bruker et Objective-C-mønster for en backing-variabel: Swift-lagrede egenskaper trenger ikke å begynne med et spesialtegn, for eksempel en understreking; Imidlertid må de initialiseres og gis en type (kanskje avledet fra initialiseringen) før de blir brukt.
var _fetchedResultsController: NSFetchedResultsController? = null
-
Deklarere en beregnet eiendom med en getter og en setter: Dette poeng fortjener litt avklaring. Oppføringen viser en grunnleggende getter og setter av en Swift eiendom. Du kan se at myVar har en backing-variabel av myInt. Få og sett søkeordene identifiserer getter og setter.
var min: Int = 0 var myVar: Int {get {return myInt} sett {myInt = newValue}} myVar = 20
Slik lager du en beregnet eiendom .
I tillegg til getters og setters vist i følgende figur, kan du bruke observatører som vist i neste liste. Denne koden er i DetailViewController. rask fil av Locatapp (fra Master-Detail Application template).
var detailItem: AnyObject? {didSet {// Oppdater visningen. selv. configureView ()}} Angi et brytepunkt i denne metoden og kjøre appen i iOS Simulator. Knappen forårsaker at metoden blir kalt.
Dette er et bra sted å ringe en visning oppdaterer (som er akkurat det som er gjort i malen). Det er to observatører du kan bruke:
-
didSet: Dette kalles etter faktum.
-
willSet: Dette kalles like før innstillingen skjer.
