
- 删除CreateFeedView-Analysis.md文档以简化项目结构。 - 新增UserAgreementComponent以处理用户协议的显示和交互。 - 更新多个视图中的onChange逻辑以兼容iOS 17的新API用法,确保代码一致性和可维护性。 - 在Localizable.strings中新增用户协议相关的本地化文本,提升多语言支持。
1.9 KiB
1.9 KiB
onChange iOS 17 迁移总结
概述
将项目中所有使用已弃用的 onChange(of:perform:)
API 的代码修改为 iOS 17 建议的新用法。
修改内容
修改规则
- 旧用法:
onChange(of: value) { newValue in ... }
- 新用法:
onChange(of: value) { oldValue, newValue in ... }
修改的文件列表
-
LoginView.swift - 3处修改
store.isAnyLoginCompleted
监听showIDLogin
监听showEmailLogin
监听
-
MainView.swift - 3处修改
store.isLoggedOut
监听path
监听store.navigationPath
监听
-
EMailLoginView.swift - 4处修改
store.loginStep
监听email
监听verificationCode
监听store.isCodeLoading
监听
-
RecoverPasswordView.swift - 4处修改
email
监听verificationCode
监听newPassword
监听store.isResetSuccess
监听
-
ImagePickerWithPreviewView.swift - 2处修改
viewStore.inner.isLoading
监听viewStore.inner.selectedPhotoItems
监听
-
EditFeedView.swift - 1处修改
store.shouldDismiss
监听
-
DetailView.swift - 1处修改
store.shouldDismiss
监听
-
MeView.swift - 1处修改
detailStore.shouldDismiss
监听
-
IDLoginView.swift - 1处修改
store.loginStep
监听
-
ContentView.swift - 1处修改
selectedLogLevel
监听
总计
- 修改文件数: 10个
- 修改处数: 20处
- 状态: ✅ 完成
验证结果
通过 grep 搜索确认所有 onChange(of:perform:)
调用都已成功迁移到新 API。
注意事项
- 新 API 提供了
oldValue
和newValue
两个参数 - 在大多数情况下,我们只使用了
newValue
参数,oldValue
用_
忽略 - 所有原有逻辑保持不变,只是 API 调用方式更新
- 修改后的代码完全兼容 iOS 17+ 的要求