我正在为一些 C 库编写包装器。是否可以将 UnsafePointer 转换为不可变结构?对于可变结构这不是问题:
func Foo_get(ptr : UnsafePointer<Foo>) {
//does not mutate
}
struct Foo {
//big data
mutating func get1() { //inconvenient
Foo_get(&self)
}
func get2() { //unnecessary copy
var copy = self
Foo_get(©)
}
}
Run Code Online (Sandbox Code Playgroud)
但这两种解决方案都不是理想的。
我想显示一个来自根窗口小部件(创建MaterialApp的窗口)的对话框,我有一个NavigatorState实例,但是showDialog需要返回的上下文Navigator.of(context)。
看起来我需要从路由提供上下文,但是我不能这样做,因为根窗口小部件没有它。
编辑:我发现了一种解决方法:我可以将仅存在的伪路由推送到showDialog,然后在对话框完成时弹出该路由。不漂亮,但可以。