title: Unexplainable crash when accessing non-optional property in singleton
body: <p>My architecture is as follows:</p>
  
  <p>We create a singleton <em>BusinessLogic</em> instance which contains several <em>categories</em>, represented by classes defined in extensions.</p>
  
  <pre><code>class BusinessLogic {
    static let shared = BusinessLogic()
  
    private(set) var foo: FooCategory = FooCategory()
  }
  </code></pre>
  
  <p>In a different file we define the <em>category</em>.</p>
  
  <pre><code>extension BusinessLogic {
    class FooCategory {
      var hasNewItems: Bool = false
    }
  }
  </code></pre>
  
  <p>In reality the class is much bigger, but these are the relevant parts.</p>
  
  <p>From my view controllers I access the properties like</p>
  
  <pre><code>BusinessLogic.shared.foo.hasNewItems
  </code></pre>
  
  <p>This is done throughout the app, and usually works without problems. In this example though, we access the hasNewItems property on viewDidLoad of our UITabBarController, which sometimes leads to crashes. This is unexplainable to me.</p>
  
  <p>Does anyone have an idea what might lead to the crash? We access the BusinessLogic class even on appStart inside the AppDelegate, where everything works fine.</p>