刚接触 swift 不久
初步发现, 状态管理, 要学这么多
感觉好复杂啊
我打算先学会 Combine, 然后再学 AppStorage,Binding,Environment,EnvironmentObject,FetchRequest,ObservedObject,State,StateObject
不知 前辈们 有建议吗?
谢谢
1
hstdt 2021-05-25 15:01:12 +08:00 via iPhone 1
先入门 Swift 和 SwiftUI 再学 Combine,FetchRequest 需要先点上 CoreData 技能点往后放放。AppStorage(SceneStorage)当修饰符看看就行。剩下的要好好理解下。一家之言,仅供参考。
|
2
Building 2021-05-25 18:29:33 +08:00 via iPhone
其实不需要一下子都学完,除非是必要的功能。
代码写多了你就会发现很多东西你自己就可以实现,然后你再去看这些关键字和用法,你会有恍然大悟的感觉。 |
3
agagega 2021-07-03 11:15:56 +08:00 via iPhone 1
这几个完全不一样的。
AppStorage 封装的是 UserDefaults,以键值对信息存储一些内容并提供默认值,典型用途是用户设置。 FetchRequest 是 Core Data 里面用的。 State 才更像 MVVM 框架里的 Data,表示和界面绑定的状态,更改后界面会自动更新。 ObservedObject 和 StateObject 这两个和 State 类似,适用于 class 而不是 struct/基本类型。这两种 Object 的区别在于生命周期,参考这篇文章: https://onevcat.com/2021/01/swiftui-state/ Binding 是把 State 传给字视图的一种方式,和直接传值的区别在于对 Binding 的修改会发送通知,从而更新父视图。 Environment 和 EnvironmentObject 是从根节点向所有的子视图传的东西,类型相对少,理解成全局单例吧。 |