K
Klaber
Mitglied
Thread Starter
- Dabei seit
- 14.09.2016
- Beiträge
- 45
- Reaktionspunkte
- 16
Hallo,
ich arbeite mich derzeit in Swift ein und mir ist soweit das Prinzip der Optionals verständlich.
Mir ist derzeit nur nicht ganz klar, warum Optionals bzgl. UIKit geprüft werden müssen. Als Beispiel mal folgender Codeschnipsel:
Hier wird, wenn ich es richtig verstanden habe, per guard geprüft ob die optinale property "imageView.image" einen Wert hat oder nicht. Wenn ja, wird dieser "image" zugewiesen ansonsten erfolgt ein return.
Mir kam die Idee, daß man dies doch per force unwrap vereinfachen könnte, also:
Der Compiler akzeptiert dies und das Programm funktioniert auch.
Mir ist aber bewußt das dies wohl nicht der richtige Weg ist. Aber warum? In diesem Beispiel ist die property imageView.image definitiv gesetzt. Was für Beispiele gibt es, in denen die property nicht gesetzt ist?
Danke!
Klaus
ich arbeite mich derzeit in Swift ein und mir ist soweit das Prinzip der Optionals verständlich.
Mir ist derzeit nur nicht ganz klar, warum Optionals bzgl. UIKit geprüft werden müssen. Als Beispiel mal folgender Codeschnipsel:
Code:
@IBAction func button1(_ sender: CustomButton) {
guard let image = imageView.image else { return }
let activityController = UIActivityViewController(activityItems: [image], applicationActivities: nil)
activityController.popoverPresentationController?.sourceView = sender
present(activityController, animated: true, completion: nil)
Hier wird, wenn ich es richtig verstanden habe, per guard geprüft ob die optinale property "imageView.image" einen Wert hat oder nicht. Wenn ja, wird dieser "image" zugewiesen ansonsten erfolgt ein return.
Mir kam die Idee, daß man dies doch per force unwrap vereinfachen könnte, also:
Code:
@IBAction func button1(_ sender: CustomButton) {
let activityController = UIActivityViewController(activityItems: [imageView.image!], applicationActivities: nil)
activityController.popoverPresentationController?.sourceView = sender
present(activityController, animated: true, completion: nil)
Der Compiler akzeptiert dies und das Programm funktioniert auch.
Mir ist aber bewußt das dies wohl nicht der richtige Weg ist. Aber warum? In diesem Beispiel ist die property imageView.image definitiv gesetzt. Was für Beispiele gibt es, in denen die property nicht gesetzt ist?
Danke!
Klaus