[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-6881":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":30,"discoverSource":31},6881,"Then","devxoul\u002FThen","devxoul","✨ Super sweet syntactic sugar for Swift initializers","",null,"Swift",4393,300,47,9,0,2,8,1,29.44,"MIT License",false,"main",[25,26],"swift","syntactic-sugar","2026-06-12 02:01:31","# Then\n\n![Swift](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSwift-5.0-orange.svg)\n[![CocoaPods](http:\u002F\u002Fimg.shields.io\u002Fcocoapods\u002Fv\u002FThen.svg)](https:\u002F\u002Fcocoapods.org\u002Fpods\u002FThen)\n[![Build Status](https:\u002F\u002Ftravis-ci.org\u002Fdevxoul\u002FThen.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002Fdevxoul\u002FThen)\n\n✨ Super sweet syntactic sugar for Swift initializers.\n\n## At a Glance\n\nInitialize UILabel **then** set its properties.\n\n```swift\nlet label = UILabel().then {\n  $0.textAlignment = .center\n  $0.textColor = .black\n  $0.text = \"Hello, World!\"\n}\n```\n\nThis is equivalent to:\n\n```swift\nlet label: UILabel = {\n  let label = UILabel()\n  label.textAlignment = .center\n  label.textColor = .black\n  label.text = \"Hello, World!\"\n  return label\n}()\n```\n\n## Tips and Tricks\n\n- You can use `then()` to all of `NSObject` subclasses.\n\n    ```swift\n    let queue = OperationQueue().then {\n      $0.maxConcurrentOperationCount = 1\n    }\n    ```\n\n- Want to use with your own types? Just make extensions.\n\n    ```swift\n    extension MyType: Then {}\n    \n    let instance = MyType().then {\n      $0.really = \"awesome!\"\n    }\n    ```\n\n- Use `with()` when copying the value types.\n\n    ```swift\n    let newFrame = oldFrame.with {\n      $0.size.width = 200\n      $0.size.height = 100\n    }\n    newFrame.width \u002F\u002F 200\n    newFrame.height \u002F\u002F 100\n    ```\n\n- Use `do()` to do something with less typing.\n\n    ```swift\n    UserDefaults.standard.do {\n      $0.set(\"devxoul\", forKey: \"username\")\n      $0.set(\"devxoul@gmail.com\", forKey: \"email\")\n      $0.synchronize()\n    }\n    ```\n\n## Real World Example\n\nHere's an example usage in an UIViewController subclass.\n\n```swift\nfinal class MyViewController: UIViewController {\n\n  let titleLabel = UILabel().then {\n    $0.textColor = .black\n    $0.textAlignment = .center\n  }\n\n  let tableView = UITableView().then {\n    $0.backgroundColor = .clear\n    $0.separatorStyle = .none\n    $0.register(MyCell.self, forCellReuseIdentifier: \"myCell\")\n  }\n\n  override func viewDidLoad() {\n    super.viewDidLoad()\n    self.view.addSubview(self.titleLabel)\n    self.view.addSubview(self.tableView)\n  }\n\n}\n```\n\n## Installation\n\n- **Using  [CocoaPods](https:\u002F\u002Fcocoapods.org)**:\n\n    ```ruby\n    pod 'Then'\n    ```\n\n- **Using [Swift Package Manager](https:\u002F\u002Fswift.org\u002Fpackage-manager)**:\n\n    ```swift\n    import PackageDescription\n\n    let package = Package(\n      name: \"MyAwesomeApp\",\n      dependencies: [\n        .Package(url: \"https:\u002F\u002Fgithub.com\u002Fdevxoul\u002FThen\", majorVersion: 2),\n      ]\n    )\n    ```\n\n## License\n\n**Then** is under MIT license. See the [LICENSE](LICENSE) file for more info.\n","Then 是一个为 Swift 初始化器提供简洁语法糖的库，使得对象初始化和属性设置更加流畅。其核心功能是通过`.then`方法链式调用，简化了代码书写，提高了可读性与开发效率，同时支持所有`NSObject`子类以及自定义类型的扩展使用。此外，还提供了`.with`方法用于值类型复制时修改属性，以及`.do`方法减少某些操作中的冗余代码。适用于任何需要编写大量Swift UI组件初始化或配置代码的应用场景，尤其是iOS\u002FmacOS应用开发中，能够显著提升界面构建部分的编码体验。","2026-06-11 03:09:22","top_language"]