TimetableSDK 3.1.2

TimetableSDK 3.1.2

测试已测试
Lang语言 SwiftSwift
许可证 MIT
Released最新版本2017年5月
SwiftSwift 版本3.0
SPM支持 SPM

Sergej Jaskiewicz 维护。



 
依赖
SwiftyJSON~> 3.0
PromiseKit~> 4.0
 

TimetableSDK

一个简单的 SDK,用于 macOS、iOS 和 watchOS,允许您从 timetable.spbu.ru 获取所需的数据。

要求

  • Swift 3
  • iOS 8.0+
  • macOS 10.10+
  • tvOS 9.0+
  • watchOS 2.0+

安装

Swift 包管理器

将 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