.onContinueUserActivity
从未在 Apple 提供的状态恢复示例应用程序中被调用.
在DetailView内部,调用这个方法:
// The described activity for this view.
.userActivity(DetailView.productUserActivityType,
isActive: product.id.uuidString == selectedProductID) { userActivity in
describeUserActivity(userActivity)
}
在 ContentView(DetailView 的父级)内部,不调用此方法:
.onContinueUserActivity(DetailView.productUserActivityType) { userActivity in
if let product = try? userActivity.typedPayload(Product.self) {
selectedProduct = product.id.uuidString
}
}
我知道
.onContinueUserActivity
不是通过在方法中放置打印语句来调用的,因为注释掉它对应用程序的恢复没有影响。
确实恢复了应用程序的状态,但不是通过他们声称使用的机制。
你是对的。onContinueUserActivity
块根本没有被调用。您可以从应用程序中删除该代码,它会继续以 NSUserActivity 机制应有的方式恢复状态。进一步测试表明,正是这条线实现了恢复:
@SceneStorage("ContentView.selectedProduct") private var selectedProduct: String?
真可惜。我希望这能尽快解决。