cloudkit-code-review
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCloudKit Code Review
CloudKit 代码审查
Quick Reference
快速参考
| Issue Type | Reference |
|---|---|
| CKContainer, databases, zones, entitlements | references/container-setup.md |
| CKRecord, references, assets, batch operations | references/records.md |
| CKSubscription, push notifications, silent sync | references/subscriptions.md |
| CKShare, participants, permissions, acceptance | references/sharing.md |
| 问题类型 | 参考文档 |
|---|---|
| CKContainer、数据库、分区、权限配置 | references/container-setup.md |
| CKRecord、引用、资源、批量操作 | references/records.md |
| CKSubscription、推送通知、静默同步 | references/subscriptions.md |
| CKShare、参与者、权限、接受流程 | references/sharing.md |
Review Checklist
审查检查清单
- Account status checked before private/shared database operations
- Custom zones used (not default zone) for production data
- All CloudKit errors handled with respected
retryAfterSeconds - conflicts handled with proper merge logic
serverRecordChanged - parsed for individual record errors
CKErrorPartialFailure - Batch operations used () not individual saves
CKModifyRecordsOperation - Large binary data stored as (records have 1MB limit)
CKAsset - Record keys type-safe (enums) not string literals
- UI updates dispatched to main thread from callbacks
- observed for account switches
CKAccountChangedNotification - Subscriptions have unique IDs to prevent duplicates
- CKShare uses custom zone (sharing requires custom zones)
- 执行私有/共享数据库操作前检查账户状态
- 生产数据使用自定义分区(而非默认分区)
- 所有CloudKit错误均已处理,且遵循机制
retryAfterSeconds - 使用正确的合并逻辑处理冲突
serverRecordChanged - 解析以处理单个记录错误
CKErrorPartialFailure - 使用批量操作()而非单独保存
CKModifyRecordsOperation - 大型二进制数据存储为(记录有1MB大小限制)
CKAsset - 记录键使用类型安全的枚举而非字符串字面量
- 回调中的UI更新分发至主线程
- 监听以处理账户切换
CKAccountChangedNotification - 订阅拥有唯一ID以避免重复
- CKShare使用自定义分区(共享功能要求使用自定义分区)
When to Load References
何时查阅参考文档
- Reviewing container/database setup or zones -> container-setup.md
- Reviewing record CRUD or relationships -> records.md
- Reviewing push notifications or sync triggers -> subscriptions.md
- Reviewing sharing or collaboration features -> sharing.md
- 审查容器/数据库配置或分区时 -> container-setup.md
- 审查记录CRUD或关系时 -> records.md
- 审查推送通知或同步触发器时 -> subscriptions.md
- 审查共享或协作功能时 -> sharing.md
Output Format
输出格式
Report issues using:
[FILE:LINE] ISSUE_TITLEExamples:
[AppDelegate.swift:24] CKContainer not in custom zone[SyncManager.swift:156] Unhandled CKErrorPartialFailure[DataStore.swift:89] Missing retryAfterSeconds backoff
使用以下格式报告问题:
[文件:行号] 问题标题示例:
[AppDelegate.swift:24] CKContainer 未使用自定义分区[SyncManager.swift:156] 未处理CKErrorPartialFailure[DataStore.swift:89] 缺失retryAfterSeconds退避机制
Review Questions
审查问题
- What happens when the user is signed out of iCloud?
- Does error handling respect rate limiting ()?
retryAfterSeconds - Are conflicts resolved or does data get overwritten silently?
- Is the schema deployed to production before App Store release?
- Are shared records in custom zones (required for CKShare)?
- 用户退出iCloud登录时会发生什么?
- 错误处理是否遵循速率限制()?
retryAfterSeconds - 冲突是否已解决,还是数据会被静默覆盖?
- App Store发布前是否已将架构部署到生产环境?
- 共享记录是否位于自定义分区(CKShare的要求)?