Skip to main content

create an Object and NIL value



I am used to have this in my code





myClass.h







@property ( strong, nonatomic ) ClassA *varA







myClass.m







varA = [[ClassA alloc] init];

if ( varA isEqual:nil )

NSLog@"var A is nil");

else

NSLog@"var A is not nil");







this is a result from console







var A is not nil







I thought var A should be nil then. So my question is what does blue line do and why var A is not nil after all


Comments

  1. You just allocated varA, then you have a ClassA object, you didn't release it or setting it to nil, so why did you expect it to be nil?

    It's normal behaviour, it's like you just made (alloc) yourself a nice cup of coffee, if you didn't drink/throw (release or setting it to nil) your coffee should still be there, right?

    ReplyDelete
  2. So, nope the nil value is gone right after you allocate the object in a memory space, also you set the values of the ivars to something in the calling for the init method in which you probably call a [super init]; or something similar so you can get the features of the father object.

    Hopefully this answers your question.

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?