Junior — Middle
Millised on mugavuse (convenience) ja määratud (designated) initsialiseerijate erinevused Swiftis?
sobes.tech AI
Vastus AI-lt
In Swift, there are two types of initializers: designated and convenience.
-
Designated initializers are the primary initializers of a class, which initialize all properties and call the superclass initializer. Each class must have at least one designated initializer.
-
Convenience initializers are auxiliary, simplify object creation with specific parameters, call other initializers of the same class (usually designated). They do not initialize all properties directly.
Rules:
- A convenience initializer must call another initializer of the same class.
- A designated initializer must call a designated initializer of the superclass.
Example:
class Vehicle {
var wheels: Int
// Designated
init(wheels: Int) {
self.wheels = wheels
}
// Convenience
convenience init() {
self.init(wheels: 4)
}
}