Give your simulator superpowers

RocketSim: An Essential Developer Tool
as recommended by Apple

Optional protocol methods in Swift

In Swift it’s kind of unsupported to implemented optional protocol methods.

You can, which is ugly, use the @objc syntax:

@objc protocol MyProtocol {
    optional func doSomething();
}

class MyClass : MyProtocol {
    // no error
}

Another disadvantage here is that structs are unsupported, as you’re bridging for Objc.

Using protocol extensions to create optional protocol methods

However, with Swift 2.0 it’s possible to define protocol extension. This allows you to create optional methods for your protocol easily:

protocol MyProtocol {
    func doSomethingNonOptionalMethod()
    func doSomethingOptionalMethod()
}

extension MyProtocol {
    func doSomethingOptionalMethod(){ 
        // leaving this empty 
    }
}

As stated in this thread, many people are asking this feature:
http://stackoverflow.com/questions/24032754/how-to-define-optional-methods-in-swift-protocol

 

Stay Updated with the Latest in Swift

The 2nd largest newsletter in the Apple development community with 18,327 developers. Don't miss out – Join today:


Featured SwiftLee Jobs

Find your next Swift career step at world-class companies with impressive apps by joining the SwiftLee Talent Collective. I'll match engineers in my collective with exciting app development companies. SwiftLee Jobs