Skip to content
DeveloperMemos

How to Get the Class Name of an Object in Swift

Swift, Programming1 min read

Object-oriented programming in Swift offers a variety of features for developers to work with. One common task when working with objects is retrieving the class name of an instance. Whether it's for debugging, logging, or other purposes, understanding how to obtain the class name can be quite valuable. In this post, we'll delve into different methods to get the class name of an object in Swift, accompanied by examples to illustrate each approach.

Using type(of:) to Retrieve the Class Name

In Swift, you can employ the type(of:) function to obtain the class name of an object. This method returns the type of the value provided within the parentheses. By using this approach, you can easily access the class name as a string for any given object.

1class MyClass {}
2let object = MyClass()
3let className = String(describing: type(of: object))
4print("The class name is: \(className)") // Output: The class name is: MyClass

The above example demonstrates how type(of:) combined with String(describing:) can be used to retrieve the class name of an object. This method is simple and effective for obtaining the class name as a string.

Utilizing Mirror to Access Type Information

Another way to acquire the class name of an object is through the use of Mirror. Mirror is a powerful and flexible reflection API in Swift that enables you to inspect the structure of various types, including classes, structures, and enumerations. It can be particularly useful for gaining insight into the type of an object.

1class YourClass {}
2let yourObject = YourClass()
3let classNameUsingMirror = String(reflecting: Mirror(reflecting: yourObject).subjectType)
4print("The class name obtained using Mirror is: \(classNameUsingMirror)") // Output: The class name obtained using Mirror is: YourClass

By leveraging Mirror, you can access the class name of an object by creating a mirror of the object and then extracting its subject type. This approach provides a dynamic way to inspect objects and gather type information at runtime.

In conclusion, being able to retrieve the class name of an object is a valuable skill for Swift developers. Whether for debugging, logging, or building flexible components, having a clear understanding of an object's class name is essential. In this post, we've explored two methods—using type(of:) and employing Mirror—to obtain the class name of an object in Swift. By incorporating these techniques into your development workflow, you can enhance your proficiency in object-oriented programming and better manage your Swift projects.