This issue bites me frequently and is a barrier to clean "protocol-based” 
programming. This is extremely counter-intuitive to me, at least. Not having a 
good workaround for this really makes the language seem incomplete.

Recently I had the need to use instances of a protocol as keys in a dictionary 
(yes, there was a very good reason for it). I assume that this was the reason 
that I could get it to work. I ended-up having the use instances of an abstract 
class, but of course, the powers that be think that abstract classes should be 
second-class citizens in Swift. This is off-topic, but not having a good 
construct for abstract methods was a mistake in Obj-C and it is a mistake in 
Swift.

- Chris


> On Dec 6, 2016, at 12:30 PM, Андрей Володин via swift-evolution 
> <[email protected]> wrote:
> 
> Been struggling with this kind of problem. My case: I have an array of class 
> protocol and can’t use my extension that removes AnyObject from array by 
> comparing pointers via ===. 
> _______________________________________________
> 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

Reply via email to