然后}3.0.0

Then 3.0.0

测试已测试
语言语言 SwiftSwift
版权 MIT
发布最后发布2022年4月
SPM支持 SPM

Suyeol Jeon维护。



Then 3.0.0

  • 作者:
  • Suyeol Jeon

Then

Swift CocoaPods Build Status

Swift 初始化器超级甜美的语法糖。

一看就懂

初始化 UILabel 然后设置其属性。

let label = UILabel().then {
  $0.textAlignment = .center
  $0.textColor = .black
  $0.text = "Hello, World!"
}

这相当于

let label: UILabel = {
  let label = UILabel()
  label.textAlignment = .center
  label.textColor = .black
  label.text = "Hello, World!"
  return label
}()

小技巧

  • 你可以用 then() 操作所有 NSObject 子类。

    let queue = OperationQueue().then {
      $0.maxConcurrentOperationCount = 1
    }
  • 想用自己的类型使用?只需创建扩展。

    extension MyType: Then {}
    
    let instance = MyType().then {
      $0.really = "awesome!"
    }
  • 在复制值类型时使用 with()

    let newFrame = oldFrame.with {
      $0.size.width = 200
      $0.size.height = 100
    }
    newFrame.width // 200
    newFrame.height // 100
  • 使用 do() 以更少的输入执行操作。

    UserDefaults.standard.do {
      $0.set("devxoul", forKey: "username")
      $0.set("[email protected]", forKey: "email")
      $0.synchronize()
    }

实例

以下是在 UIViewController 子类中使用的一个示例。

final class MyViewController: UIViewController {

  let titleLabel = UILabel().then {
    $0.textColor = .black
    $0.textAlignment = .center
  }

  let tableView = UITableView().then {
    $0.backgroundColor = .clear
    $0.separatorStyle = .none
    $0.register(MyCell.self, forCellReuseIdentifier: "myCell")
  }

  override func viewDidLoad() {
    super.viewDidLoad()
    self.view.addSubview(self.titleLabel)
    self.view.addSubview(self.tableView)
  }

}

安装

  • 使用 CocoaPods:

    pod 'Then'
  • 使用 Swift 包管理器:

    import PackageDescription
    
    let package = Package(
      name: "MyAwesomeApp",
      dependencies: [
        .Package(url: "https://github.com/devxoul/Then", majorVersion: 2),
      ]
    )

许可

然后 是基于 MIT 许可。有关更多信息,请参阅 LICENSE 文件。