Skip to content
forked from devxoul/Then

✨ Super sweet syntactic sugar for Swift initializers.

License

Notifications You must be signed in to change notification settings

gabrielPeart/Then-1

 
 

Repository files navigation

Then

Swift Build Status CocoaPods Carthage compatible

✨ Super sweet syntactic sugar for Swift initializers.

At a Glance

Initialize UILabel then set its properties.

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

This is equivalent to:

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

You can use then() to all of NSObject subclasses.

let queue = NSOperationQueue().then {
    $0.maxConcurrentOperationCount = 1
}

Want to use with your own types? Just make extensions.

extension MyType: Then {}

let instance = MyType().then {
    $0.really = "awesome!"
}

Real World Example

Here's an example usage in an UIViewController subclass.

final class MyViewController: UIViewController {

    let titleLabel = UILabel().then {
        $0.textColor = .blackColor()
        $0.textAlignment = .Center
    }

    let tableView = UITableView().then {
        $0.backgroundColor = .clearColor()
        $0.separatorStyle = .None
        $0.registerClass(MyCell.self, forCellReuseIdentifier: "myCell")
    }

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

}

Installation

  • For iOS 8+ projects with CocoaPods:

    pod 'Then', '~> 1.0'
  • For iOS 8+ projects with Carthage:

    github "devxoul/Then" ~> 1.0
    
  • For iOS 7 projects with CocoaSeeds:

    github 'devxoul/Then', '1.0.2', :files => 'Sources/*.swift'
  • Using Swift Package Manager:

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

License

Then is under MIT license. See the LICENSE file for more info.

About

✨ Super sweet syntactic sugar for Swift initializers.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 54.4%
  • Objective-C 31.8%
  • Ruby 13.8%