In this tutorial, you will learn how to create a new class in Swift.
After learning the basics of creating classes in Swift, you can dive deeper and learn how to implement a Singleton pattern in Swift, and create a class that has only one instance throughout your project.
Alright, so let’s begin by declaring an empty class first.
Declare an Empty Class in Swift
Below is a code example that declares a simple class in Swift without any properties or methods.
class Person {
}
let person = Person()
The class Person {} code snippet defines an empty class named Person. Even though this class has no properties or methods, you can still create an instance of it using let person = Person(). The Person() is the default initializer provided by Swift to create a new instance of the Person class.
A Class in Swift with One Initializer
Now, let’s add an initializer to our class to set some initial values for its properties.
class Person {
var name: String
var age:Int
init(age: Int, name: String) {
self.age = age
self.name = name
}
}
let person = Person(age: 30, name: "Sergey")
The init(age: Int, name: String) method is an initializer that sets initial values for the name and age properties when a Person object is created. The line let person = Person(age: 30, name: "Sergey") creates a new Person object with initial values.
A New Class with Multiple Initializers
In this section, I will show you how to declare a new class with two initializers.
class Person {
var firstName: String
var lastName: String
var email: String?
init(firstName: String, lastName: String) {
self.firstName = firstName
self.lastName = lastName
}
init(firstName: String, lastName: String, email: String) {
self.firstName = firstName
self.lastName = lastName
self.email = email
}
}
let person1 = Person(firstName: "Sergey", lastName: "Kargopolov")
let person2 = Person(firstName: "Sergey", lastName: "Kargopolov", email: "[email protected]")
In this code example, I have defined a Person class with two initializers. The first initializer accepts two arguments for firstName and lastName, while the second initializer accepts an additional argument for email. This way, you can create a Person instance either with or without an email address.
A Class with a Method
In this section, we’ll create a new class in Swift, and we will add a method that returns a string.
class Person {
var firstName: String
var lastName: String
init(firstName: String, lastName: String) {
self.firstName = firstName
self.lastName = lastName
}
func getFullName() -> String {
return firstName + " " + lastName
}
}
let person = Person(firstName: "Sergey", lastName: "Kargopolov")
print("Full name: " + person.getFullName())
The func getFullName() -> String method is defined within the Person class to return the full name of a person. The getFullName method concatenates the firstName and lastName properties with a space in between, and returns the result.
Conclusion
You’ve now learned how to create a class in Swift, along with adding initializers and defining methods. There’s much more to explore in Swift programming. Check out other Swift code examples to further enhance your understanding and skills.
Happy coding!