140 lines
3.5 KiB
Markdown
140 lines
3.5 KiB
Markdown
![]() |
# 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. **回归测试**:确保没有引入新的问题
|