)The Circle-elipse problem (https://en.wikipedia.org/wiki/Circle-ellipse_problem is quite a big issue in object oriented programming languages, is there a way it can be solved in Swift, with protocols for example ?
Solving the Circle-ellipse problem in Swift
One of the mentioned solutions is to drop the inheritance relationships and just use a common interface for common operations. Protocols do that, and aren't unique to Swift.