Discussions on the Swift programming language and other projects at Swift.org
Twitter: @swift_unwrapped
Feed: RSS
Hosted by Jesse Squires and JP Simard
Swift has evolved since 1.x to have a fluctuating amount of magic/implicit bridging from ObjC and Foundation types, sometimes going in the opposite direction towards very explicit type conversions.
We’ve started seeing more of what the “steady state” looks like as Swift 3.x/4.x development matures.
In the early days, Swift users would need deep compiler internal implementation details to know which NSNumber-representable type could implicitly convert. As of SE-0139 that’s a lot clearer.
The subtleties of unenforced protocol conformance semantics: https://oleb.net/blog/2016/12/protocols-have-semantics/
@objc
inference: https://github.com/DougGregor/swift-evolution/blob/objc-inference/proposals/NNNN-objc-inference.mdNSNumber
and NSValue
: https://github.com/apple/swift-evolution/blob/master/proposals/0139-bridge-nsnumber-and-nsvalue.mdNSNull
: https://github.com/apple/swift-evolution/blob/master/proposals/0140-bridge-optional-to-nsnull.mdid
as Any
: https://github.com/apple/swift-evolution/blob/master/proposals/0116-id-as-any.mdNSError
bridging: https://github.com/apple/swift-evolution/blob/master/proposals/0112-nserror-bridging.md