Files
peko-ios/YuMi/Modules/YMRoom/View/SendGiftView/GiftComboManager_Migration_Guide.md

140 lines
3.5 KiB
Markdown
Raw Normal View History

# GiftComboManager 迁移指南
## 概述
为了简化连击功能的实现,我们对 `GiftComboManager` 进行了接口优化。新接口更加简洁、直观,同时保持了完全的向后兼容性。
## 新接口 vs 旧接口
### 状态管理
| 旧接口 | 新接口 | 说明 |
|--------|--------|------|
| `enableToCombo:YES` | `activate` | 激活连击功能 |
| `enableToCombo:NO` | `deactivate` | 停用连击功能 |
| `isGiftCombing` | `isActive` | 检查是否激活 |
### 计数管理
| 旧接口 | 新接口 | 说明 |
|--------|--------|------|
| `loadComboCount` | `currentCount` | 获取当前连击计数 |
| `loadComboCountFromSendGiftView` | `incrementCount` | 增加连击计数 |
| `resetCombo` | `reset` | 重置连击状态 |
### 操作控制
| 旧接口 | 新接口 | 说明 |
|--------|--------|------|
| `forceRemove` | `clear` | 清除连击状态 |
| `sendGift` | `send` | 发送连击礼物 |
## 使用示例
### 旧方式
```objc
// 激活连击
[[GiftComboManager sharedManager] enableToCombo:YES];
// 重置连击
[[GiftComboManager sharedManager] resetCombo];
// 获取计数
NSInteger count = [[GiftComboManager sharedManager] loadComboCount];
// 增加计数
NSInteger currentCount = [[GiftComboManager sharedManager] loadComboCountFromSendGiftView];
// 检查状态
BOOL isCombing = [[GiftComboManager sharedManager] isGiftCombing];
// 清除状态
[[GiftComboManager sharedManager] forceRemove];
```
### 新方式
```objc
// 激活连击
[[GiftComboManager sharedManager] activate];
// 重置连击
[[GiftComboManager sharedManager] reset];
// 获取计数
NSInteger count = [[GiftComboManager sharedManager] currentCount];
// 增加计数
[[GiftComboManager sharedManager] incrementCount];
// 检查状态
BOOL isActive = [[GiftComboManager sharedManager] isActive];
// 清除状态
[[GiftComboManager sharedManager] clear];
```
## 新增功能
### 状态查询
```objc
// 获取完整状态信息
NSDictionary *state = [[GiftComboManager sharedManager] stateInfo];
// 检查是否可以开始连击
BOOL canStart = [[GiftComboManager sharedManager] canStartCombo];
// 验证并修复状态
[[GiftComboManager sharedManager] validateState];
// 获取状态摘要
NSString *summary = [[GiftComboManager sharedManager] statusSummary];
```
### 错误处理
```objc
// 处理错误
NSError *error = [NSError errorWithDomain:@"ComboError" code:100 userInfo:nil];
[[GiftComboManager sharedManager] handleError:error];
// 获取错误信息
NSString *errorMsg = [[GiftComboManager sharedManager] lastErrorMessage];
// 清除错误
[[GiftComboManager sharedManager] clearError];
```
### 便捷方法
```objc
// 快速重置并激活
[[GiftComboManager sharedManager] resetAndActivate];
// 安全增加计数
NSInteger newCount = [[GiftComboManager sharedManager] safeIncrementCount];
```
## 迁移策略
### 阶段1并行使用当前
- 旧接口继续工作,但会显示废弃警告
- 新接口可以开始使用
- 逐步迁移现有代码
### 阶段2完全迁移未来
- 移除旧接口
- 统一使用新接口
- 简化代码结构
## 注意事项
1. **向后兼容性**:所有旧接口仍然可用
2. **废弃警告**:使用旧接口会显示警告,但不影响功能
3. **性能优化**:新接口内部实现更简洁,性能更好
4. **错误处理**:新接口提供更好的错误处理机制
## 测试建议
1. **功能测试**:确保新接口功能正确
2. **兼容性测试**:确保旧接口仍然工作
3. **性能测试**:验证新接口的性能表现
4. **回归测试**:确保没有引入新的问题