Files
e-party-iOS/issues/onChange iOS17 迁移.md
edwinQQQ b35b6e1ce1 feat: 移除CreateFeedView-Analysis文档并新增用户协议组件以增强用户体验
- 删除CreateFeedView-Analysis.md文档以简化项目结构。
- 新增UserAgreementComponent以处理用户协议的显示和交互。
- 更新多个视图中的onChange逻辑以兼容iOS 17的新API用法,确保代码一致性和可维护性。
- 在Localizable.strings中新增用户协议相关的本地化文本,提升多语言支持。
2025-08-01 14:34:53 +08:00

1.9 KiB

onChange iOS 17 迁移总结

概述

将项目中所有使用已弃用的 onChange(of:perform:) API 的代码修改为 iOS 17 建议的新用法。

修改内容

修改规则

  • 旧用法: onChange(of: value) { newValue in ... }
  • 新用法: onChange(of: value) { oldValue, newValue in ... }

修改的文件列表

  1. LoginView.swift - 3处修改

    • store.isAnyLoginCompleted 监听
    • showIDLogin 监听
    • showEmailLogin 监听
  2. MainView.swift - 3处修改

    • store.isLoggedOut 监听
    • path 监听
    • store.navigationPath 监听
  3. EMailLoginView.swift - 4处修改

    • store.loginStep 监听
    • email 监听
    • verificationCode 监听
    • store.isCodeLoading 监听
  4. RecoverPasswordView.swift - 4处修改

    • email 监听
    • verificationCode 监听
    • newPassword 监听
    • store.isResetSuccess 监听
  5. ImagePickerWithPreviewView.swift - 2处修改

    • viewStore.inner.isLoading 监听
    • viewStore.inner.selectedPhotoItems 监听
  6. EditFeedView.swift - 1处修改

    • store.shouldDismiss 监听
  7. DetailView.swift - 1处修改

    • store.shouldDismiss 监听
  8. MeView.swift - 1处修改

    • detailStore.shouldDismiss 监听
  9. IDLoginView.swift - 1处修改

    • store.loginStep 监听
  10. ContentView.swift - 1处修改

    • selectedLogLevel 监听

总计

  • 修改文件数: 10个
  • 修改处数: 20处
  • 状态: 完成

验证结果

通过 grep 搜索确认所有 onChange(of:perform:) 调用都已成功迁移到新 API。

注意事项

  1. 新 API 提供了 oldValuenewValue 两个参数
  2. 在大多数情况下,我们只使用了 newValue 参数,oldValue_ 忽略
  3. 所有原有逻辑保持不变,只是 API 调用方式更新
  4. 修改后的代码完全兼容 iOS 17+ 的要求