Ich versuche, ein UIimageview
Bild mit einer Methode innerhalb einer Klasse mit einem viewDidLoad()
Aufruf zu aktualisieren. Ich versuche, das Bild zu ändern:Swift 3: Instanz Member kann nicht auf Typ "View Controller" verwendet werden
MyIMage.image = UIImage(named: "image2")
aber sein gibt mir den Fehler:
Instance member cannot be used on type "view controller"
Wohin gehe ich falsch?
Mein Code:
import UIKit
class ViewController: UIViewController {
@IBOutlet var MyImage: UIImageView!
var MyStruct = ChangeImage()
struct ChangeImage {
private var _isChanged: Bool = false
mutating func Set_Change(val: Bool) {
if (val) {
MyImage.image = UIImage(named: "image2")
self._isChanged = true
} else {
MyImage.image = UIImage(named: "image1")
self.isChanged = false
}
}
func isChanged()-> Bool {
return self._isChanged
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
MyStruct.Set_Change(val: true)
print (MyStruct.isChanged())
}
}
Ihr grundsätzliches Problem ist, dass Sie den Unterschied zwischen einer Klasse nicht verstehen, und einem Objekt (Dies ist eine Instanz einer Klasse). Sie versuchen, MyImage, eine Klasse, so zu verwenden, als wäre es ein Objekt. Sie werden empfohlen, grundlegende Bücher oder Tutorials über objektorientierte Programmierung zu lesen, bevor Sie weitermachen, damit Sie die Grundlagen verstehen, da Sie sonst nirgends hinkommen. – Gruntcakes