So I have the following code where I am releasing an object after pushing it to another view. When I analyse it I get the error – Incorrect decrement of the reference count of an object that is not owned at this point by the caller. Would anyone know how to fix this? I’ve tried so many options each time getting a different memory leak
- (void)showCurrentArticle:(id)sender {
if(animating)
return; //it is already there
animating = YES;
JsonViewController *newsController = [(JsonViewController *)[self.newsNavController.viewControllers objectAtIndex:0]retain];
newsNavController.title = @"Parliament";
Item *currentItem = (Item *)[self.fetchedObjectsArray objectAtIndex:currentItemIndex];
NSString * urlString = [CONST_FEED_DISCRIPTION_URL stringByAppendingString:currentItem.guid];
[newsController initWithURLString:urlString date:currentItem.date];
[self.navigationController pushViewController:newsController animated:YES];
[newsController release];
}
This code takes a view controller that’s already present in the navigation stack, reinitialises it, then pushes it onto the stack again. This doesn’t seem right at all. You probably should be creating a new view controller. What’s the background on this? What are you trying to achieve?