title: Singleton variable not updating
body: <p>The value of the variable 'switcheroo' in the view controller below is always the same when I attempt to access it via a singleton. I am trying to access its value from a custom label class that prints the characters of the label one by one. When the label is set, I try to get the updated value of switcheroo in the Viewcontroller singleton. However it always returns the initial value of switcheroo, not the updated value (which I can trace in the viewcontroller). Am I doing something wrong? </p>
  
  <pre><code>class TheViewController: UITableViewController, UIGestureRecognizerDelegate, UITabBarControllerDelegate {
  
     static let shared = TheViewController()
     var switcheroo = 0
  
     ... various operations that change the value of switcheroo...
  }
  
  class CustomLabel: UILabel {
  
    required init?(coder aDecoder: NSCoder) {
       super.init(coder: aDecoder)
    } 
  
    override var attributedText: NSAttributedString? {
  
      didSet { 
  
          DispatchQueue.main.async {
  
            let characterDelay = TimeInterval(0.01 + Float(arc4random()) / Float(UInt32.max)) / 100
  
                  for (index, _) in attributedText.string.enumerated() {
  
                      DispatchQueue.main.asyncAfter(deadline: .now() + characterDelay * Double(index)) {
                          print("switcheroo value in TheViewController is now: \(TheViewController.shared.switcheroo)")
                          super.attributedText = attributedText.attributedSubstring(from: NSRange(location: 0, length: index+1))
                      }
                  }
              }
  }
  </code></pre>