I understood the concept of optionals right away, but since the debugger doesn’t work with Swift in the third beta of Xcode 6, I’m given no clue what I’m actually doing wrong when my app explodes. This article did a pretty good job clearing things up for me.
Objects that may or may not be nil (and the nil-checking code that accompanies them) are the cause of many common programming errors. Swift’s optionals offer compile-time cues to developers about when it’s necessary to nil-check and when it’s not, and makes it harder to write code that misbehaves in the presence of nil.