Often we find ourselves in a situation where we need to check whether an object belongs to a particular class or not. For example, consider there is a UIView, and there are many subviews like UITextView, UILabel, and UIStepper. Now you have to find the UILabel from the parent view and change its text value. So how do we do that? Well, there are multiple ways of doing it.
Winya: Live Stream Games
Become a Streamer by starting a live stream from your iPhone/iPad to Twitch/YouTube or any live streaming service of your choice. Download the app and become a creator now!
Method 1 - Using ‘for’ loop. This method is a kind of brute force method. Usually, we all do this way.
We run the code, and everything works as expected. However, as a developer, we should find out more efficient methods of doing it. Let’s see another way of doing it.
Method 2 - Using ‘case let’ in ‘for in’ loop. Here, we are using the power of the ‘for in’ loops to find the UILabel from the subviews.
Neat, isn’t it? There is a significant reduction in the number of lines of code.
So, do we settle here? No. There should be more Swifty way to solve this problem. Let’s see how.
Method 3 - Using ‘compactMap’
In this method, we use ‘compactMap’ to typecast a view to UILabel. I consider this method to be more swifty and descriptive.
These are the methods I prefer to typecast objects from an array. There are many more methods too. So, what is your preferred way of typecasting objects? Tell us in the comments below. Still have any queries reach out to me directly on Twitter