> On Fri, Jun 17, 2016 at 9:33 PM, Maury Markowitz via swift-users 
> <swift-users@swift.org> wrote:
> I was asked to try out the latest betas of Cocoa to check if a SceneKit bug I 
> reported has been fixed. As part of this I decided to try an update to Swift 
> 3. I've run into a number of minor issues, but one has me frustrated. In my 
> menu validate method, I have:
> 
>                 switch menuItem.action {
>                         case #selector!(showRescale) :
> 
> This worked fine in 2.2, but now it complains that it expects a ( after 
> #selector. Removing the ! fixes that problem, but now returns an error that 
> there's a missing !, which it inserts to cause the original error again. I 
> also tried placing it after the ()'s, and now it complains that it's 
> expecting the :
> 
> Does anyone know the proper Swift 3 syntax for this?

This code snippet works for me in a menu validation function...

        guard let action = anItem?.action else { return false }
        switch action {
        case #selector(showOpenPanel(_:)):
            return true
        case #selector(save(_:)):
            return modified
        case #selector(openPreferencesWindow(_:)):
            return true
        default:
            print("default for item \(anItem)")
        }
        return false

I used the guard let... to get around the fact that action selectors are now 
optionals.
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to