Ich wurde gerade von dem Fehler dieses sehr einfachen Codes (den ich vom Projekt getrennt habe) überwältigt.Swift 2.2 - Richtiger Weg, um ein UIImageView programmgesteuert zu initialisieren
import UIKit
class ViewController: UIViewController {
weak var garageDoor: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
if let image = UIImage(named: "garagedoorclosed") {
print("image ready: \(image)")
garageDoor = UIImageView(image: image)
print("garageDoor: \(garageDoor)")
garageDoor.frame = CGRectMake(0, 0, 560, 400) // fails here!
view.addSubview(garageDoor)
}
else {
print("image not ready!")
}
}
}
Ich möchte nur ein UIImageView mit einem Bild garagedoorclosed
Namen initialisieren.
Ich habe keine Ahnung, warum ich garageDoor
mit garageDoor = UIImageView(image: image)
nicht initialisieren konnte.
Mein Bild unten:
Alle Kommentare wird geschätzt!
Dank
Ja, das macht den Trick! Verwenden Sie Ihre Methode erneut, aber nachdem ich garageDoor initialisiert habe, weise ich sie der Instanzvariablen zu, dann übergibt sie den Fehler! Sie haben eine Erklärung für diesen seltsamen Fall? Ist das ein Fehler von UIImageView? – quanguyen
Es ist kein Fehler UIImageView. Dies hängt mit dem Konzept von stark und schwach zusammen. Ich werde es in meiner Antwort erklären – David