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
