我可以定义类似的东西
struct SimpleView: View { ...
Run Code Online (Sandbox Code Playgroud)
但像
final class SimpleView: View { ...
Run Code Online (Sandbox Code Playgroud)
在运行时确实会因 EXC_BAD_INSTRUCTION 崩溃。一般情况下是不可能的还是仅就我而言是不可能的?
简短的回答:不。
更长的答案是 Swift(语言)允许这样做,因为没有办法禁止协议被类采用(尽管你可以强制协议仅被类采用,但这与所需的相反) 。然而,SwiftUI 依赖视图来structs
更新视图的内部方法,所以不是。这与为什么需要使用@State
for 值类型有关(因为它会观察值何时更改,如果使用引用类型,则视图只会在重新分配对象时更新,而不是在任何属性更改时更新)并使用@ObservedObject
for引用类型(并且ObservableObject
s 必须是class
es。
归档时间: |
|
查看次数: |
1375 次 |
最近记录: |