Forum: PC-Programmierung Swift UiimageView Problem


von jey (Gast)


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
    }

von Stefan Salewski (Gast)


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

von Stefan Salewski (Gast)


Lesenswert?


von Naja (Gast)


Lesenswert?

Stefan Salewski schrieb:
> Nun ja, Swift soll jetzt irgendwie auch OpenSource sein

Ist aber anscheinend nur was für App'ler und den Tux und damit leider 
unbrauchbar für >90% aller PC-Besitzer.

von jey (Gast)


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....

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.