Skip to content

Commit ad5167f

Browse files
committed
优化代码
1 parent aca2a26 commit ad5167f

2 files changed

Lines changed: 40 additions & 9 deletions

File tree

Package.swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
// swift-tools-version: 6.2
1+
// swift-tools-version: 5.9
22
// The swift-tools-version declares the minimum version of Swift required to build this package.
33

44
import PackageDescription
5-
// swift-tools-version: 5.9
65

76
let package = Package(
87
name: "TaskKit",
@@ -18,7 +17,7 @@ let package = Package(
1817
name: "TaskKit",
1918
dependencies: [],
2019
swiftSettings: [
21-
.enableExperimentalFeature("SwiftData")
20+
.enableUpcomingFeature("StrictConcurrency")
2221
]
2322
)
2423
]

Sources/TaskKit/TaskKit.swift

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,52 @@
1-
// The Swift Programming Language
2-
// https://docs.swift.org/swift-book
31
//
42
// TaskKit.swift
53
// TaskKit
64
//
5+
// Swift Package: TaskKit
6+
//
77

88
import Foundation
99

10+
/// TaskKit 是应用中管理任务与奖励的入口
11+
///
12+
/// 使用方法:
13+
/// 1. 调用 `TaskKit.configure(tasks:rewards:)` 初始化任务和奖励
14+
/// 2. 通过 `TaskKit.tasks` 和 `TaskKit.rewards` 获取当前状态
15+
/// 3. TaskEngine 和 RewardEngine 会自动处理任务完成与奖励解锁逻辑
1016
@MainActor
1117
public enum TaskKit {
12-
public static var tasks: [AppTask] = []
13-
public static var rewards: [AppReward] = []
14-
/// 初始化 TaskKit:设置可用任务
15-
public static func configure(tasks: [AppTask],rewards:[AppReward]) {
18+
19+
/// 当前应用可用任务列表(只读)
20+
public private(set) static var tasks: [AppTask] = []
21+
22+
/// 当前应用可用奖励列表(只读)
23+
public private(set) static var rewards: [AppReward] = []
24+
25+
/// 初始化 TaskKit,设置可用任务和奖励
26+
/// - Parameters:
27+
/// - tasks: 当前 app 可用任务列表
28+
/// - rewards: 当前 app 可用奖励列表
29+
public static func configure(tasks: [AppTask], rewards: [AppReward]) {
30+
31+
// 检查任务 ID 是否唯一
32+
let taskIDs = tasks.map { $0.id }
33+
guard Set(taskIDs).count == tasks.count else {
34+
print("⚠️ TaskKit Warning: Duplicate task IDs found.")
35+
return
36+
}
37+
38+
// 检查奖励 ID 是否唯一
39+
let rewardIDs = rewards.map { $0.id }
40+
guard Set(rewardIDs).count == rewards.count else {
41+
print("⚠️ TaskKit Warning: Duplicate reward IDs found.")
42+
return
43+
}
44+
45+
// 配置状态
1646
self.tasks = tasks
1747
self.rewards = rewards
48+
49+
// 加载到引擎
1850
TaskEngine.shared.loadTasks(tasks)
1951
RewardEngine.shared.loadRewards(rewards)
2052
}

0 commit comments

Comments
 (0)