测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可证 | MIT |
Released最新版本 | 2017年5月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✓ |
由 Sergej Jaskiewicz 维护。
依赖 | |
SwiftyJSON | ~> 3.0 |
PromiseKit | ~> 4.0 |
一个简单的 SDK,用于 macOS、iOS 和 watchOS,允许您从 timetable.spbu.ru 获取所需的数据。
将 TimetableSDK 添加为依赖到您的 Package.swift
。例如:
let package = Package(
name: "YourPackageName",
dependencies: [
.Package(url: "https://github.com/WeirdMath/TimetableSDK.git", majorVersion: 3)
]
)
您可以使用 SDK 直接从 timetable.spbu.ru 获取数据。
import TimetableSDK
let timetable = Timetable()
timetable.fetchDivisions() { result in
switch result {
case .success(let divisions):
let physics = divisions[19]
print(physics.name)
// "Физика"
physics.fetchStudyLevels(){ result in
switch result {
case .success(let studyLevels):
print(studyLevels[0].specializations[0].name)
// "Информационные технологии и численные методы"
case .failure(let error):
print(error)
}
}
case .failure(let error):
print(error)
}
}
或者——如果您只想测试您的应用程序并且不需要网络——可以将数据从 JSON 文件中反序列化
import Foundation
import TimetableSDK
let timetable = Timetable()
let url = Bundle.main.url(forResource: "divisions", withExtension: "json")!
let jsonData = try! Data(contentsOf: url)
timetable.fetchDivisions(using: jsonData) { result in
// ...
}
如果需要,可以指定一个分发队列
import Dispatch
import TimetableSDK
timetable.fetchDivisions(dispatchQueue: .global(qos: .background)) { result in
// ...
}
您可以使用承诺!
import TimetableSDK
import PromiseKit
let timetable = Timetable()
timetable.fetchDivisions().then { divisions -> Promise<[StudyLevel]> in
let physics = divisions[19]
print(physics.name)
// "Физика"
return physics.fetchStudyLevels()
}.then { studyLevels in
print(studyLevels[0].specializations[0].name)
// "Информационные технологии и численные методы"
}.catch { error in
print(error)
}
为了为 TimetableSDK 生成 Xcode 项目,在项目的根目录中执行以下命令
$ swift package generate-xcodeproj