iOS Object-Oriented Objective-C Diving Deeper - Classes, Properties and Methods Custom Classes Continued

Ryan Jin
Ryan Jin
15,337 Points

How can if operation work with nonboolean

In this video, there is this piece of code.

-(id)init {
    self = [super init];

    NSLog(@"%@\n", self);

    if (self) {
        self.itemsOrdered = [[NSMutableArray alloc]init];
    }

    return self;
}

I am wondering how can if statement be used to compare a self. Is it checking to see if self is nill or not, or is self a boolean type. I have printed it to the console, and it is not a boolean.

1 Answer

It's shorthand for a boolean: self != nil.

Here's a great article on the subject: https://www.mikeash.com/pyblog/the-how-and-why-of-cocoa-initializers.html