Appliable 使用闭包使配置对象更加容易和方便。
let button = UIButton().apply {
$0.isUserInteractionEnabled = false
}
UserDefaults.standard.apply {
$0.set("Value 1", forKey: "Key 1")
$0.set("Value 2", forKey: "Key 2")
$0.set("Value 3", forKey: "Key 3")
}
Appliable 可以通过 Swift Package 方式获取。
.package(url: "https://github.com/pawello2222/Appliable.git", .upToNextMajor(from: "1.0.0"))
let button = UIButton().apply {
$0.isUserInteractionEnabled = false
}
let label = UILabel()
label.apply {
$0.isUserInteractionEnabled = false
}
let calendar = Calendar(identifier: .gregorian).applying {
$0.timeZone = .init(identifier: "UTC")!
$0.locale = .init(identifier: "en_US_POSIX")
}
var calendar = Calendar(identifier: .gregorian)
calendar.apply {
$0.timeZone = .init(identifier: "UTC")!
$0.locale = .init(identifier: "en_US_POSIX")
}
UserDefaults.standard.apply {
$0.set("Value 1", forKey: "Key 1")
$0.set("Value 2", forKey: "Key 2")
$0.set("Value 3", forKey: "Key 3")
}
var array = Array(repeating: Date(), count: 3)
array.applyEach {
$0.addTimeInterval(1000)
}
let array1 = Array(repeating: Date(), count: 3)
let array2 = array1.applyingEach {
$0.addTimeInterval(1000)
}
let label = UILabel()
let button = UIButton()
[label, button].applyEach {
$0.isUserInteractionEnabled = false
}
let components = [UILabel(), UIButton()].applyEach {
$0.isUserInteractionEnabled = false
}
数组
日历
日期
字典
集合
URL
URLRequest
JSONDecoder
JSONEncoder
PropertyListDecoder
PropertyListEncoder
NSObject
的类extension Calendar: Appliable {} // value types
extension JSONDecoder: ObjectAppliable {} // reference types
struct Item: Appliable {
var value: Int?
}
let item = Item().applying {
$0.value = 1
}
Appliable 基于 MIT 许可发布。更多信息请查看 LICENSE 文件。