A beginner’s problem: I have a method which puts data into a MutableArray. Potentially, this method can be called more than once and I am a bit concerned that it will leak memory as I am allocating the array every time it gets called:
indexContent = [[NSMutableArray alloc] init];
int numberOfEntries = [noteBookContent count]/3;
for (int k=0; k < numberOfEntries; k++) {
IndexItem *newItem = [[IndexItem alloc] init];
newItem.itemTitle = [noteBookContent objectAtIndex:(k*3)];
newItem.itemPage = k;
if (![[noteBookContent objectAtIndex:(k*3)] isEqualToString:@""]) {
[indexContent addObject:newItem];
}
[newItem release];
}
What will actually happen if indexContent = [[NSMutableArray alloc] init]; is called more than once? If it’s bad, how can I prevent this? Should I call this, for instance, in the viewDidLoad? But how would I go about it if I try to do ‘lazy-loading’, i.e. only allocate indexContent if I really need it? Is there a way to check if it has already been allocated?
I am sorry if all of this is obvious, but I am struggling with this. Perhaps it’s a basic concept which I haven’t fully grasped yet. Thanks!
EDIT:
I have
@property (nonatomic, retain) NSMutableArray *indexContent;
in my header
Surround code with a check for nil, if it is nil then allocate the array