<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Hm. There are several levels to this answer:</div><div class=""><br class=""></div><div class="">- The implementation of @IBAction uses @objc.</div><div class="">- In theory we could some day have @IBActions that do <i class="">not</i>&nbsp;use the ObjC runtime.</div><div class="">- But I agree that having to type "@IBAction @objc private func foo…" seems like a bit much.</div><div class=""><br class=""></div><div class="">Doug, what do you think?</div><div class=""><br class=""></div><div class="">Jordan</div><div class=""><br class=""></div><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 9, 2016, at 3:24 , Sebastian Hagedorn via swift-users &lt;<a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I’m currently migrating some code to the new #selector syntax and came across an issue re: @objc visibility.<div class=""><br class=""></div><div class="">I have this method:</div><div class=""><br class=""></div><div class=""><font face="Monaco" class=""><span style="font-size: 15px;" class="">@IBAction&nbsp;private&nbsp;func&nbsp;tapGestureRecognized(gesture:&nbsp;UIGestureRecognizer) {…}</span></font></div><div class=""><br class=""></div><div class="">…and use this code to set up the recognizer:</div><div class=""><br class=""></div><div class=""><font face="Monaco" class=""><span style="font-size: 15px;" class="">let&nbsp;tapSelector =&nbsp;#selector(MyClass.tapGestureRecognized(_:))<br class="">let&nbsp;tapGesture =&nbsp;UITapGestureRecognizer(target:&nbsp;self, action: tapSelector)</span></font></div><div class=""><br class=""></div><div class="">The previous version with Selector(“…") worked fine. Now that I use #selector, I get this warning:</div><div class=""><br class=""></div><div class="">Argument of '#selector' refers to a method that is not exposed to Objective-C</div><div class=""><br class=""></div><div class="">My understanding was that @IBAction always implied @objc. I can easily fix the warning, either by adding @objc or by removing the private modifier, but I’d like to understand why @objc @IBAction works, but @IBAction does not. I’d like to keep the private modifier. If this is a bug/limitation, I will file a bug report. Just wanted to make sure that I understand it correctly.</div><div class=""><br class=""></div><div class="">Cheers</div><div class="">Sebastian</div><div class=""><br class=""></div></div>_______________________________________________<br class="">swift-users mailing list<br class=""><a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-users<br class=""></div></blockquote></div><br class=""></body></html>