I have the following problem: In one flow of the execution I use alloc, and on the other flow, alloc is not needed. At the end of the if statement, in any case, I release the object. When I do 'build and Analize' I get an error: 'Incorrect decrement of the reference count of an object is not owned by the caller'.
How to solve that?
UIImage *image;
int RandomIndex = arc4random() % 10;
if (RandomIndex<5)
{
image = [[UIImage alloc] initWithContentsOfFile:@"dd"];
}
else
{
image = [UIImage imageNamed:@"dd"];
}
UIImageView *imageLabel =[[UIImageView alloc] initWithImage:image];
[image release];
[imageLabel release];
You should retain the image in the second condition:
image = [[UIImage imageNamed:@"dd"] retain];
This way, both possible exits out of the condition will have an object with a reference count of one, from your point of view.
Otherwise, you are trying to release an already autoreleased object!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With