[swift-users] Protocol conformance failure
Slava Pestov
spestov at apple.com
Tue Mar 21 21:48:00 CDT 2017
Worth mentioning that @objc protocols do conform to themselves as long as they do not have static methods or initializer requirements. However this may be too heavy-handed if a simple overload can do the trick.
Slava
> On Mar 9, 2017, at 1:10 PM, Guillaume Lessard via swift-users <swift-users at swift.org> wrote:
>
>
>> On Mar 9, 2017, at 12:46, Edward Connell via swift-users <swift-users at swift.org> wrote:
>>
>> // Everything compiles fine until this
>> someFunc(items: items)
>
> This is a frequent pain point: protocol existentials cannot stand in for the protocol they represent.
> Your function wants a concrete type that conforms to ItemProtocol, but an array of disparate types which happen to separately conform to ItemProtocol does not do that.
>
> You will need to overload thusly:
>
> func someFunc(items: [ItemProtocol]) {
> for item in items {
> print(item.message)
> }
> }
>
> until, someday, this pain point is resolved.
>
> Cheers,
> Guillaume Lessard
>
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users
More information about the swift-users
mailing list