title: Switch must be exhaustive in Xcode 12
body: <p>in new Xcode 12, I am getting a peculiar error in permission scope.
  <strong>Switch must be exhaustive add .limited case.</strong> Though I added .limited case its still showing this error. I am getting this on where ever switch cases is used. Can You point me in the right direction. I recently upgraded my project from Xcode 11 to Xcode 12 so am a bit confused here.</p>
  <pre><code>func openPhotoController(item: InfoItem) {
      
      
      let status = PHPhotoLibrary.authorizationStatus()
      
      switch status {
      case .authorized:
          
          DispatchQueue.main.async
          {
              let photoLib = photoLibViewController()
              photoLib.delegate = self
              photoLibCropImage = false
              photoLib.modalTransitionStyle = .crossDissolve
              photoLib.modalPresentationStyle = .fullScreen
              photoLib.allowMultipleSelection = false
              self.present(photoLib, animated: true, completion: nil)
          }
          print(&quot;authorized&quot;)
      //handle authorized status
      case .denied, .restricted :
          
          print(&quot;denied&quot;)
          
          AlertManager.showAlertView(title: &quot;Alert?&quot;, subtitle: &quot;Please allow access to your photo library to use this functionality&quot;, showCancelButton: true, okButtonTitle: &quot;Go to Settings&quot;, cancelButtonTitle: &quot;Cancel&quot;) {
              
              if let url = URL(string:UIApplication.openSettingsURLString)
              {
                  if UIApplication.shared.canOpenURL(url)
                  {
                      UIApplication.shared.open(url, options: [:], completionHandler: nil)
                  }
              }
          }
      //handle denied status
      case .notDetermined:
          // ask for permissions
          PHPhotoLibrary.requestAuthorization { status in
              switch status {
              case .authorized:
                  
                  print(&quot;authorized&quot;)
                  
                  DispatchQueue.main.async
                  {
                      let photoLib = photoLibViewController()
                      photoLib.delegate = self
                      photoLibCropImage = false
                      photoLib.modalTransitionStyle = .crossDissolve
                      photoLib.modalPresentationStyle = .fullScreen
                      photoLib.allowMultipleSelection = false
                      self.present(photoLib, animated: true, completion: nil)
                  }
              // as above
              case .denied, .restricted:
                  
                  print(&quot;denied&quot;)
              // as above
              case .notDetermined:
                  print(&quot;notDetermined&quot;)
              // won't happen but still
              case .limited:
                  print(&quot;notDetermined&quot;)
              default:
                  print(&quot;notDetermined&quot;)
              }  
          }
      }
  }
  </code></pre>