Wie kann möglich sein, dass die scrollview ist Null bei der Verwendung der ersten: @IBAction afegeixGrafic
aber bei der Verwendung @IBAction func button
ist es nicht '? bekam ich die Klasse GraficsBalancGlobalViewController
die Unterklasse der Klasse ist GraficViewController
Warum ist mein scrollView null?
class GraficsBalancGlobalViewController: GraficViewController {
@IBAction func afegeixGrafic(sender: NSButton) {
addNewGrafic() // which is set on the GraficViewController
}
}
Und wenn ich die IBAction
afegeixGrafic
mein Programm stürzt ab, auf der Linie durchführen unten markiert:
class GraficViewController: NSViewController, GraficViewDataSource {
@IBAction func button(sender: NSButton) {
addNewGrafic()
}
func addNewGrafic() {
let frame = NSRect(x: 0, y: 0, width: self.view.bounds.width , height: self.view.bounds.width * 0.25)
let nouGrafic = GraficView(frame: frame)
scrollView.addSubview(nouGrafic) <---- BREAK here!
}
@IBOutlet weak var scrollView: NSView!
//...more code
}
Der Compiler sagt, dass:
fatal error: unexpectedly found nil while unwrapping an Optional value
aber der Knopf (IBAction) innerhalb der GraficViewController
arbeitet wel l !! Also nehme ich an, dass das Problem mit dem Scroll verwandt ist, aber ich habe keine Ahnung von dem, was werden kann .. Es initialisiert ..
Ich versuche, dies zu:
@IBOutlet weak var scrollView: NSView? {
didSet {
guard let sview = scrollView else {
addNewGrafic()
return // because scrollView is nil for some reason, but don't work
}
}
}
Voll Code:
class GraficsBalancGlobalViewController: GraficViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.
}
@IBAction func afegeixGrafic(sender: NSButton) {
//performSegueWithIdentifier("Nou Grafic", sender: nil)
//let viewController = storyboard!.instantiateControllerWithIdentifier(identifier!) as! GraficsBalancGlobalViewController
addNewGrafic()
}
@IBAction func eliminaGrafic(sender: NSButton) {
}
}
'scrollView' wird immer Null in Ihrem letzten Codeblock sein - das ist, was die Wache für prüft - und es fällt in die sonst nur wenn es null ist –
ja, tut mir leid, das kann verwirrend sein. Der letzte Code-Teil ist nicht wichtig, der wichtigste ist der erste. –
Zeigen Sie uns den Aufrufstapel an der Stelle des Fehlers. –