2017-10-02 7 views
0

Ich bin neu, also bitte mit mir. Ich habe eine Master-Detail-App und habe Probleme beim Ausführen der App im Portrait iPad. Master zeigt eine Tabellenansicht an, dass beim Klicken auf die Zelle ein Bild auf der Detailseite angezeigt wird. Es stürzt auf dem imageView1.image = MasterViewController.MyVariables.flowerImage ab! Beachten Sie, dass dies im iPhone funktioniert. Ich denke, was passiert ist, weil das flowerImage noch nicht geladen wurde, also gibt es keinen Wert. Der Fehler ist übrigens: Schwerwiegender Fehler: unerwartet gefunden Null beim Auspacken eines optionalen Werts.Wie erhalte ich einen Fehler, bevor es passiert? fataler Fehler: unerwartet gefunden, Null beim Entpacken ein optionaler Wert

override func viewDidLoad() { 
    super.viewDidLoad() 

    imageView1.image = MasterViewController.MyVariables.flowerImage! 
    // Do any additional setup after loading the view, typically from a nib. 
    configureView() 
} 

-Code für SplitViewController:

import UIKit 

Klasse SplitViewController: UISplitViewController, UISplitViewControllerDelegate {

override func viewDidLoad() { 
    self.delegate = self 
    self.preferredDisplayMode = .allVisible 
} 

func splitViewController(
    _ splitViewController: UISplitViewController, 
    collapseSecondary secondaryViewController: UIViewController, 
    onto primaryViewController: UIViewController) -> Bool { 
    // Return true to prevent UIKit from applying its default behavior 
    return true 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

}

+0

machen Sie eine Wache auf Ihr Bild, so dass, wenn es nichts ist, Sie wissen werden. – koropok

Antwort

0

Wenn Sie nicht sicher sind, dass das Objekt nicht sei nil, dann benutze keine Kraftausweitung.

können Sie mehrere Optionen zur Verfügung: 1. "guard lassen" Aussage:

guard let image = MasterViewController.MyVariables.flowerImage else{ 
    //add some notification about error here 
    return 
} 
imageView1.image = image 
  1. "wenn wir" Anweisung

    wenn lassen image = MasterViewController .MyVariables.flowerImage { imageView1.image = Bild } else {// eine Benachrichtigung über Fehler hinzufügen hier }

Verwandte Themen