You can implement an @objc protocol with an optional requirement, and make 
NSObject conform to it.

Slava

> On Oct 24, 2017, at 4:05 PM, Charles Srstka <[email protected]> wrote:
> 
>> On Oct 24, 2017, at 5:02 PM, Slava Pestov via swift-evolution 
>> <[email protected] <mailto:[email protected]>> wrote:
>> 
>> Thoughts? Does anyone actually rely on this feature, instead of just 
>> stumbling on it by accident once in a while?
> 
> The main thing I can think of off the top of my head is getting the tag from 
> the sender in an IBAction:
> 
> @IBAction private func someAction(_ sender: Any?) {
>     guard let tag = (sender as AnyObject?)?.tag as Int? else { return }
> 
>     ...
> }
> 
> Unfortunately given how many unrelated Cocoa objects there are that implement 
> -tag, it’s not really practical to implement this without the AnyObject 
> dispatch. If a TagContaining protocol could be introduced and all the objects 
> that implement -tag could be made to conform to it, then that would work 
> around the problem (I believe I pitched this at some point long ago, but 
> without catching any interest).
> 
> Charles
> 

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to