iOS @buffer. Author for Pluralsight, contributor to a few books, conference talks and some other stuff! Writing at swiftjectivec.com
In essence, protocol extensions allow Swift developers to enhance an entire set of types without tweaking individual subclasses, structs, or enumerations. And, well, that’s powerful. Code can become less complex.
It could have been developed to be mostly right, but when it would be wrong — one would be left with a runtime exception and a few debug sessions wrought with ambiguity. Thus, definitive initialization is used.