Objective-C (iPhone) Memory Management

Posted by Steven on Stack Overflow See other posts from Stack Overflow or by Steven
Published on 2010-06-09T14:28:27Z Indexed on 2010/06/09 16:02 UTC
Read the original article Hit count: 532

I'm sorry to ask such a simple question, but it's a specific question I've not been able to find an answer for.

I'm not a native objective-c programmer, so I apologise if I use any C# terms!

If I define an object in test.h

@interface test : something {
    NSString *_testString;
}

Then initialise it in test.m

-(id)init {
    _testString = [[NSString alloc] initWithString:@"hello"];
}

Then I understand that I would release it in dealloc, as every init should have a release

-(void)dealloc {
    [_testString release];
}

However, what I need clarification on is what happens if in init, I use one of the shortcut methods for object creation, do I still release it in dealloc? Doesn't this break the "one release for one init" rule? e.g.

-(id)init {
    _testString = [NSString stringWithString:@"hello"];
}

Thanks for your helps, and if this has been answered somewhere else, I apologise!!

Steven

© Stack Overflow or respective owner

Related posts about iphone

Related posts about objective-c