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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren