[swift-users] fileprivate extensions can't add protocol conformance

Paul Schmidt paul.schmidt at smartsheet.com
Mon Feb 13 10:35:45 CST 2017

Would love for this to be possible. It becomes an issue in mixed code: if
you include conformance to a <foo>Kit protocol in one of your Swift
classes, then you have to include the corresponding headers in every
Objective C file that includes the bridging .h file. The <foo>Kit classes
are added to the bridging header, but not the protocols. There are
workarounds (such as using an instance of a conforming nested class as a
proxy- nested classes are not emitted in the bridging header), but it's so
much cleaner to be able conform to the protocol privately. (Either that, or
fix the utility that builds the bridging header so it exposes the protocol
as well.)

Paul Schmidt | Smartsheet
Senior iOS Software Development Engineer
E: paul.schmidt at Smartsheet.com
C: 425.283.9576

Work *Better*™
Learn More → smartsheet.com

On Mon, Feb 13, 2017 at 8:28 AM, Alejandro Martinez via swift-users <
swift-users at swift.org> wrote:

> Hi,
> I found myself writting some method that parsed an API response and
> wanted to use Decodable to map the response into a struct declared
> elsewhere.
> My idea was that each api response handler file (I use completely
> different APIs that map into the same model) could add it's own
> fileprivate conformance to decodable into the model struct so each api
> response handler would use a different decoding function. But I found
> the compiler telling me that is not possible.
> I can easily change my design, is not an issue but I'm super curious.
> Why fileprivate extensions can't add protocol conformance? Is there a
> technical reason behind? or a conscience design?
> Thanks!
> --
> Alejandro Martinez
> http://alejandromp.com
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20170213/3c2413a7/attachment.html>

More information about the swift-users mailing list