要运行示例项目,请克隆存储库,并首先从 Example 目录运行 pod install。
CocoaPods 是 Cocoa 项目的依赖管理工具。 您可以使用以下命令安装它
$ gem install cocoapods
需要 CocoaPods 1.1+ 才能构建 StorageManager。
要使用 CocoaPods 将 StorageManager 集成到您的 Xcode 项目中,请在您的 Podfile 中指定它
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!
target '<Your Target Name>' do
pod 'Dots'
end
然后,运行以下命令
$ pod install
Carthage 是一个去中心化的依赖管理工具,可以构建您的依赖项并为您提供二进制框架。
您可以使用 Homebrew 使用以下命令安装 Carthage
$ brew update
$ brew install carthage
要使用 Carthage 将 StorageManager 集成到您的 Xcode 项目中,请在您的 Cartfile 中指定它
github "iAmrSalman/Dots" ~> 0.5.0
运行 carthage update 来构建框架,并将构建的 Dots.framework 拖到您的 Xcode 项目中。
Swift Package Manager 是一个用于自动化 Swift 代码分发的工具,并且已集成到 swift 编译器中。 它处于早期开发阶段,但 StorageManager 确实支持在支持的平台上使用它。
设置好 Swift 包后,将 StorageManager 添加为依赖项就像将其添加到 Package.swift 的 dependencies 值一样容易。
dependencies: [
.package(url: "https://github.com/iAmrSalman/Dots.git", from: "0.5.0")
]
import Dots
Dots.defualt.request("<URL>") { (dot: Dot) in
print(dot.response) // HTTP URL response
print(dot.data) // server data
print(dot.error) // Errors from request processing
print(dot.json) // JSON dictionary [String: Any]
}
HTTPMethod 枚举列出了 HTTP 方法
public enum HTTPMethod: String {
case options = "OPTIONS"
case get = "GET"
case head = "HEAD"
case post = "POST"
case put = "PUT"
case patch = "PATCH"
case delete = "DELETE"
case trace = "TRACE"
case connect = "CONNECT"
}
这些值可以作为 method 参数传递给 request 函数
Dots.defualt.request("<URL>") // method defaults to `.get`
Dots.defualt.request("<URL>", method: .post)
Dots.defualt.request("<URL>", method: .put)
Dots.defualt.request("<URL>", method: .delete)
request 方法参数默认为 .get。
let parameters: Parameters = ["foo": "bar"]
Dots.defualt.request("<URL>", parameters: parameters) // defaults url encoding
Dots.defualt.request("<URL>", parameters: parameters, encoding: .url)
// <URL>?foo=bar
let parameters: Parameters = [
"foo": "bar",
"baz": ["a", 1],
"qux": [
"x": 1,
"y": 2,
"z": 3
]
]
Dots.defualt.request("<URL>", method: .post, parameters: parameters) // defaults url encoding
Dots.defualt.request("<URL>", method: .post, parameters: parameters, encoding: .url)
//httpHeader: Content-Type: application/x-www-form-urlencoded; charset=utf-8
// HTTP body: foo=bar&baz[]=a&baz[]=1&qux[x]=1&qux[y]=2&qux[z]=3
let parameters: Parameters = [
"foo": [1,2,3],
"bar": [
"baz": "qux"
]
]
Dots.defualt.request("<URL>", method: .post, parameters: parameters, encoding: .json)
//HTTP header: Content-Type: application/json
// HTTP body: {"foo": [1, 2, 3], "bar": {"baz": "qux"}}
全局 request 方法直接支持将自定义 HTTP 标头添加到 Request。 这使得将 HTTP 标头附加到 Request 变得容易。
let headers: HTTPHeaders = [
"Authorization": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
"Accept": "application/json"
]
Dots.defualt.request("<URL>", headers: headers)
支持选择异步和同步
Dots.defualt.request("<URL>", concurrency: .async) // concurrency defaults to `.async`
Dots.defualt.request("<URL>", concurrency: .sync)
支持自定义同时执行的最大并发请求数。
默认情况下,如果设备使用蜂窝网络连接,则最大并发请求数限制为 2,而 Wi-Fi 最多执行 6 个并发请求。
let customDots = Dots(maxConcurrentOperation: <Int>)
customDots.request("<URL>")
imageView.setImage(withURL: "<URL>")
Amr Salman, iamrsalman@gmail.com
Dots 基于 MIT 许可证提供。 详情请参阅 LICENSE 文件。