Why is UIViewController.dismissViewControllerAnimated marked as NS_SWIFT_DISABLE_ASYNC?

In the header for UIViewController, the method dismissViewControllerAnimated is declared like this:

- (void)dismissViewControllerAnimated: (BOOL)flag completion: (void (^ __nullable)(void))completion NS_SWIFT_DISABLE_ASYNC API_AVAILABLE(ios(5.0));

NS_SWIFT_DISABLE_ASYNC means that there's no async version exposed like there would normally be of a method that exposes a completion handler. Why is this? And is it unwise / unsafe for me to make my own async version of it using a continuation?

My use case is that I want a method that will sequentially dismiss all view controllers presented by a root view controller. So I could have this extension on UIViewController:

extension UIViewController {
    func dismissAsync(animated: Bool) async {
        await withCheckedContinuation { continuation in
            self.dismiss(animated: animated) {
                continuation.resume()
            }
        }
    }

    func dismissPresentedViewControllers() async {
        while self.topPresentedViewController != self {
            await self.topPresentedViewController.dismissAsync(animated: true)
        }
    }

    var topPresentedViewController: UIViewController {
        var result = self
        while result.presentedViewController != nil {
            result = result.presentedViewController!
        }
        
        return result
    }
Why is UIViewController.dismissViewControllerAnimated marked as NS_SWIFT_DISABLE_ASYNC?
 
 
Q