I don't know the answer for sure, but the code as originally written is slightly more subtle than your re-writes. There are 3 possible cases:1. a SKView2. a NSView that is not a SKView3. nilThe original code will crash deliberately on case 2 (which is a mis-configured storyboard, in effect), and branch on the difference between 1 and 3. Your 1st rewrite branches on 2 and 3, and your second rewrite crashes on 2 and 3.In any actual use case, where you have direct control over the storyboard, you can probably customize the code to require a top-level SKView (or subclass), in which case your second rewrite may well be sufficient, and less confusing to future readers of the code.