It can be (more-or-less) solved in library code today:
extension NSObjectProtocol {
public func with(@noescape fn: Self -> Void) -> Self {
fn(self)
return self
}
}
This way, you can do, on NSObjects:
textLabel.with {
$0.textAlignment = .Left
$0.textColor = .darkTextColor()
}
I love this pattern.
You can also make it a function to make it work with any value of any kind (it
will then take form of `with(foo) { …}`).
Ideally, if you could write a universal extension (something like `extension
Any`), you could just add this behavior, with method syntax, to everything.
— Radek
> On 13 Apr 2016, at 15:15, 李海珍 via swift-evolution <[email protected]>
> wrote:
>
> I recently learned some VBA and I found a very conveniently `with` statement.
>
> `with` statement can be helpful to set property for UIKit instance.
>
> for instance a UILabel instance `textLabel` ,with `with` statement we can set
> UILabel property like this
>
>
>
> ```swift
>
> with textLabel{
>
> .textAlignment = .Left
>
> .textColor = UIColor.darkTextColor()
>
> .font = UIFont.systemFontOfSize(15)
>
> }
>
> ```
>
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution