Swift UiimageView Problem

Gast #4447539
Lesenswert?
• ▲
▼
Hallo ich habe ein Problem mit Swift, ich erzeuge ein UiimageView und 
dieser sollte nur einmal erzeugt werden mit Abfrage auf nil . Leider 
wird er immer wieder erzeugt. Kann mit da jemand weiter helfen

Gruß
1
    func update() {
2
        
3
        motionKit.getGyroValues(0.1) { (x, y, z) -> Void in
4
            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
5
                dispatch_async(dispatch_get_main_queue()) {
6
                    
7
                    self.Accel_Y.text = String(format: "%.1f", y)
8
                    self.Accel_X.text = String(format: "%.1f", x)
9
                    
10
                    var image: UIImage?
11
                    var imageView:  UIImageView?
12
                    
13
                    if image == nil {
14
                        imageView = UIImageView(frame: CGRectMake( CGFloat(100 * y) , CGFloat(100 * x), 50, 50));
15
                        image = UIImage(named: "PunktRED_5x5");
16
                        imageView?.image = image;
17
                        self.view.addSubview(imageView!);
18
                    }
19
                }
20
            })
21
        }
22
    }
Gast #4447569
Lesenswert?
• ▲
▼
jey schrieb:
> Hallo ich habe ein Problem

Nun ja, Swift soll jetzt irgendwie auch OpenSource sein, aber ich habe 
mich damit noch nie beschäftigt.

Aber gut, was fällt sofort auf:

var image: UIImage?

in der Funktion. Bei den meisten Sprachen liegt es so definiert auf dem 
Stack (dh der Pointer liegt auf dem Stack, das Object selbst auf den 
Heap), wird damit bei Verlassen der Funktion ungültig und beim 
Wiedereintritt vermutlich wieder aus nil initialisiert. Also global 
anlegen, oder nachsehen was man sonst machen kann. Etwa Closures oder in 
C static keyword, siehe

http://stackoverflow.com/questions/5033627/static-variable-inside-of-a-function-in-c
Gast #4447828
Lesenswert?
• ▲
▼
Ich muss zugeben Swift ist doch schon was für fortgeschrittene aber echt 
interessant. Man merkt aber das diese Sprache noch in allen Richtungen 
entwickelt wird. Aber der Umfang an Methoden ist unmenschlich....

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.