I guess, but doesn’t it seem far more elegant to have a protocol for tag-containing objects? This is a feature that’s pretty heavily used…
Charles > On Oct 24, 2017, at 6:06 PM, Slava Pestov <spes...@apple.com> wrote: > > 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 <cocoa...@charlessoft.com >> <mailto:cocoa...@charlessoft.com>> wrote: >> >>> On Oct 24, 2017, at 5:02 PM, Slava Pestov via swift-evolution >>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> 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 swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution