Ich habe etwa 15 UIButtons in meinem Controller. Ich versuche, 10 von ihnen mit einer einfachen for-Schleife zu löschen und sieht aus, als ob ich eine Art von Konflikt bekomme.Verwenden von Tags in Swift
Wenn ich den Knopf drücken zu löschen, erhalte ich folgende Fehlermeldung:
Could not cast value of type '_UISizeTrackingView' (0x18a023c) to 'UIButton' (0x1899298). (lldb)
For-Schleife ist:
for var i = 0; i < 9; i++ {
button = view.viewWithTag(i) as! UIButton
button.setImage(nil, forState: .Normal)
}
Ich habe es verengte mit einem Gegenstand zu einem Thema nach unten, die unter Verwendung Tag 0. Ich habe alle Elemente in meiner View-Controller-Szene angeschaut und kann anscheinend keine Konflikte finden. Ich sehe nur die eine Schaltfläche mit dem Tag = 0.
Ich habe es sogar durch das Ersetzen des "i" in der Schleife mit "0" und das gleiche Problem bestätigt. Wenn ich es durch eine "1" oder eine "2" ersetze, funktioniert dieses einzelne Bild gut.
Jede Möglichkeit zu sehen, welches Objekt das Tag 0 verwendet? Ich habe sie alle angeklickt (einschließlich der Hauptansicht), kann aber nichts finden.
Tolle Lösung! – ranunez
Als zusätzlichen Bonus können wir jetzt "in" durch diese. Ich weiß nicht über Swift, aber in Objective-C wäre ein 'for in 'definitiv schneller als der ursprüngliche C-Stil' for' in der Frage. – nhgrif
@Sulthan, warum Menschen Outlets mehr als Tags verwenden? Ich meine es verringert die Codelänge richtig! Konnte ich gut klingen oder erhöhte ich die Komplexität durch die Verwendung von Tags? –