NSUserActivity deleteAllSavedUserActivities not working

170 views Asked by At

My case is utterly simple: I use the next function

private func launchActivity(_ id: String, title: String, invocPhrase: String) {
        userActivity = NSUserActivity(activityType: "Open_bank")
        userActivity?.title = title
        userActivity?.userInfo = ["id": id]
        if #available(iOS 12.0, *) {
            userActivity?.suggestedInvocationPhrase = invocPhrase
            userActivity?.isEligibleForPrediction = true
            userActivity?.persistentIdentifier = id
        } else {
            //Can't actually invoke this block
        }
    }

to create a certain userActivity, and then add it to Siri, so that it can be invoked by by invocPhrase. Here is the function which does this.

func presentAddOpenBankToSiriVC() {
        guard let userActivity = self.userActivity else { return }
        if #available(iOS 12.0, *) {
            let shortcut = INShortcut(userActivity: userActivity)
            let viewController = INUIAddVoiceShortcutViewController(shortcut: shortcut)
            viewController.modalPresentationStyle = .formSheet
            viewController.delegate = self
            present(viewController, animated: true, completion: nil)
        } else {
            //Can't actually invoke this block
        }
    }

Later I try to delete it (as well as all other user activities)

NSUserActivity.deleteAllSavedUserActivities {}

And it just does not delete any user activity, contrary to what's written in Apple Documentation https://developer.apple.com/documentation/sirikit/deleting_donated_shortcuts

Actually, at first, I've tried a method

 deleteSavedUserActivities(withPersistentIdentifiers:completionHandler:)

with userActivity's persistentIdentifier, but, obviously, also to no avail.

I've no idea why it refuses to budge but would be grateful to any help or hint

0

There are 0 answers