v5.dk logo
Kom ind og besøg vores Discord Chat-community
Bliv medlem her eller læs mere om Discord her
Kærlighed kan godt købes for penge
- vi elsker nemlig vores kunder :-)

Mere info Køb nu

Premium på v5.dk
v5.dk logo  v5.dk e-learning
Log på med Facebook
  • Log ind på v5.dk
  • Opret bruger
  • Log ind
  • v5.dk Premium
  • v5.dk Premium
  • Hvad siger vores kunder?
  • E-læring for begyndere
  • icon for WordPress 4 e-learning WordPress 4
  • icon for Office 365 e-learning Office 365
  • icon for Microsoft Word e-learning Microsoft Word
  • Bloggen for alle
  • E-læring for nørder
  • icon for PHP-programmering e-learning PHP-programmering
  • icon for iOS Programmering e-learning iOS Programmering
  • icon for Linux Server e-learning Linux Server
  • Bloggen for nørder
  • Arkiverede videoer
  • Fællesskab
  • Forum
  • Idéer og ønsker
  • Markedspladsen
  • v5.dk Premium
  • Gratis webhotel
  • Cloud-servere
  • Om v5.dk
  • Søg på v5.dk
  • Om v5.dk ApS
    • Om virksomheden
    • RSS-feeds og tjenester
    • Driftsmeddelelser
    • Presse-kit
    • Ledige jobs
    • Social Netværk
      • Facebook
      • Twitter
      • Instagram
    • Alt det andet
      • Forretningsbetingelser
      • Ophavsret og Copyright
  • Kontakt kundeservice
  • FAQ og Hjælp
    • Premium og abb.
    • Videoer og Afspiller
    • Forum og Points
    • Cloud-servers
  • Partner/Virksomhed
  • Partner-kanal
v5.dk logo mobile
  • Menu
  • Opret bruger

Globale variable i swift

  • v5.dk
  • Forum
  • iPhone-/Xcode-programmering
  • Globale variable i swift
  • Sidevisninger: 2583 har set dette indlæg
Besvar #0Spørgsmål oprettet af @karinemborg | 8300 points
30 points ude 3 indlæg 4 år siden Spørgsmål besvaret
avatar
 

Hej

Jeg er ret vild med at programmere i swift, som jeg synes er et nemt sprog i forhold til så meget andet. I de apps  jeg laver, opbevarer jeg data i globale arrays og dictionaries, som jeg definerer i en særskilt klasse med funktioner, der loader og saver de pågældende data. Dataene er defineret ovenover klassen.

I AppDelegates under applicationWillResignActive kalder jeg save funktionen og i applicationDidBecomeActive loader jeg data ind i tabellerne (hvis de er tomme).

Således har jeg indkapslet selve accessen til UserDefaults, CoreData, Firebase, whatever til meget enkel kodning, der nemt kan skiftes ud med noget andet. Jeg synes også kodning af app'ens funktionalitet bliver meget enklere. 

Men jeg har lige et spørgsmål:

Når jeg googl'er rundt på nettet, synes jeg den overvejende holdning er, at man skal undgå globale variable. Hvorfor ? - når brugen er strengt formålsbestemt.

Håber eksperterne kan hjælpe med lidt teori og argumentation på dette felt. På forhånd tak.

/Karin

Dette svar er accepteret af OP og tildelt 30 points
avatar
 
Besvar#1 @db Admin svarede for 4 år siden

Hej Karin

Det er nemt at sige, at du skal undgå globale variabler. Den svære del er at lære de bedste alternativer til globale variabler iht. den situation og de data du arbejder med på det givne tidspunkt.

Jeg har intet imod globale variabler, så længe der er et specifikt behov for det, men der er alternativer, og det handler i bund og grund om sikkerhed og optimering. 

Hvis du gerne vil meget mere i dybden med emnet, kan jeg anbefale bogen Design Patterns https://en.wikipedia.org/wiki/Design_Patterns

 

Denne side beskriver også lidt om hvorfor Globale variabler kan være en dårlig idé: http://wiki.c2.com/?GlobalVariablesAreBad

 


Med venlige hilsner

Daniel Bahls Signatur   Daniel Bahl (@db)
   CEO – v5.dk ApS

avatar
 
Besvar#2 @karinemborg kommenterede for 4 år siden

Hej Daniel

Tak for svaret og links.

Teoretisk er globale variable måske ikke så kønt, men når swift nu er et sprog, hvor det nemt i praksis kan lade sig gøre, og Apple i øvrigt tillader det uden kommentarer, når man kører app'en eller lægger den i App Store, så regner jeg ikke med, at det går helt galt. Selvfølgelig skal man tænke nøje over, hvordan man bruger det, men det skal man i det hele taget, når man designer sin funktionalitet og strukturerer programmet.

Jeg tror nok, jeg vil afvente rigtig gode argumenter - noget med, at noget andet så ikke kan lade sig gøre - eller at jeg får problemer netop på grund af global temporær dataopbevaring - inden jeg ændrer på min måde at opbygge apps. Jeg synes det fungerer, og der er så meget andet uopdyrket, jeg gerne vil afprøve.

Mvh

Karin

avatar
 
Besvar#3 @db Admin kommenterede for 4 år siden

Hej igen Karin

Jeg tror aldrig du vil opleve noget der ikke kan løses- eller ikke virker med global variables. Tvært imod. 

Det er et design-princip; at skrive pæn design-rigtig kode vs. funktionel kode kan være to vidt forskellige ting- og i langt de fleste tilfælde fokuserer jeg primært også selv på at skrive funktionel kode som hurtigt kan skubbes ud af døren 

God Swift'ing! 


Med venlige hilsner

Daniel Bahls Signatur   Daniel Bahl (@db)
   CEO – v5.dk ApS

Spørgsmålet er besvaret, men du er altid mere end velkommen til at skrive en kommentar!
avatar
 

Du er ikke logget ind

Du skal være logget ind på v5.dk før du kan benytte vores forum. Det er ganske gratis at oprette en bruger.

Opret en ny gratis bruger Log ind

Følger med i denne tråd

karinemborg

Forum kategorier

  • Generelt
  • Guides & Howto28
  • Offtopic / Andet59
  • Microsoft Office
  • Microsoft Word11
  • Microsoft Excel4
  • Microsoft PowerPoint0
  • Web og hjemmesider
  • Wordpress17
  • Operativsystemer
  • Apple Mac OS X12
  • Apple iOS28
  • Microsoft Windows4
  • Linux16
  • Teknologier
  • Netværk og WiFi3
  • Internet-tjenester9
  • Programmering
  • PHP-programmering124
  • iPhone-/Xcode-programmering9

Aktive forum-tråde lige nu

Chrome Auto Fyld holdt op med at virke
ÆØÅ
WHERE TO BUY GRADE AA+ UNDETECTABLE COUNTERFEIT BANK NOTES,REAL PASSPORTS,DRIVERS LICENSES,ID CARDS
HVOR KØBES GRADE AA+ IKKE-OPSEGLERBARE FORfalskede pengesedler, RIGTIGE PAS, KØREKORT, ID-KORT
HVOR KØBES GRADE AA+ IKKE-OPSEGLERBARE FORfalskede pengesedler, RIGTIGE PAS, KØREKORT, ID-KORT
Tegne Program
MacBook gået ud ved indsættelse at IPhone SE…
Loop Nested JSON Array til Table
Bygget med af v5.dk
© Copyright 2006-2022 • Forretningsbetingelser • Copyright • Persondata- og Cookiepolitik
v5.dk ApS - Åbogade 15 - 8200 Aarhus N - CVR: 36902833
v5.dk logo
Hej, vi hedder v5.dk og vi laver e-learning på dansk

v5.dk er sat i verden for at gøre teknologi tilgængeligt og anvendeligt for både professionelle og almindelige brugere på alle niveauer.

93 200 555
  Skriv til os
v5.dk bruger cookies til at huske dine indstillinger, livechat samt til statistik
 

Alle vores priser er inkl. moms Sikker SSL-beskyttet forbindelse

Dankort og Visa-Dankort  Visa  Mastercard og Mastercard Junior  Maestro

  • Produkter
  • v5.dk Premium
  • Cloud-servers
  • v5.dk
  • Om v5.dk
  • Kunderne siger
  • Kontakt os
  • Presse
  • Stay updated
  • RSS & tjenester
  • Søg på v5.dk
  • Sitemap