Ios 新请求场景的NSUserActivity没有用户信息

Ios 新请求场景的NSUserActivity没有用户信息,ios,uikit,nsuseractivity,uiscene,Ios,Uikit,Nsuseractivity,Uiscene,在我的应用程序中,我有一个表视图,其中每个单元格代表一个文件URL。用户可以点击一个单元格,一个新的UIScene将打开,表示该文件 // In some view controller override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let url: URL = dataSource.itemIdentifier(for: indexPath)!

在我的应用程序中,我有一个表视图,其中每个单元格代表一个文件URL。用户可以点击一个单元格,一个新的
UIScene
将打开,表示该文件

// In some view controller
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let url: URL = dataSource.itemIdentifier(for: indexPath)!

    let userActivity = NSUserActivity(activityType: ViewController.activityType)

    userActivity.addUserInfoEntries(from: [
        ViewController.ActivityKey.url : url
    ])

    UIApplication.shared.requestSceneSessionActivation(nil,
                                                       userActivity: userActivity,
                                                       options: nil)

    tableView.deselectRow(at: indexPath, animated: true)
}
正如您在上面的代码片段中所看到的,我将URL存储在一个
nsserActivity
中,该活动将被传递到
UIScene

我的问题是,
userInfo
在新场景中总是空的

// In SceneDelegate.swift

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {

    let navController = window!.rootViewController as! UINavigationController
    viewController = navController.viewControllers.last as? ViewController

    let userActivity =
        connectionOptions.userActivities.first ??
            session.stateRestorationActivity

    if let someActivity = userActivity {
        // ✳️ BREAKPOINT HERE ✳️
        viewController.restoreUserActivityState(someActivity)
    }

    viewController.setupThenOpenDocument()
}
调试器命令

(lldb) p someActivity.userInfo
([AnyHashable : Any]?) $R2 = 0 key/value pairs

我通过设置用户活动的标题进行了实验(我不会在我的应用程序中的任何地方使用活动标题)。标题确实出现在新的场景中,确认我正在查看的用户活动是正确的

与其调用
userActivity.addUserInfoEntries
,不如直接调用
userActivity.userInfo=
?我试过了。同样的事情。与其调用
userActivity.addUserInfoEntries
,不如直接调用
userActivity.userInfo=
?我试过了。同样的事情。