Consider two classes. The first is Vehicle, an NSObject subclass that conforms to NSCopying:
class Vehicle : NSObject,
You need a required initializer because subclass implementation of a required initializer in Swift needs it.
Per Swift Documentation on Required nitializers:
You must also write the required modifier before every subclass implementation of a required initializer, to indicate that the initializer requirement applies to further subclasses in the chain.