Вы распределили UIImage с этим кодом
UIImage *image=[[[UIImage alloc] init]autorelease];
но позже вы назначаете объект в recipeItems
или packItems
так что вы потеряете контроль над выделенным объектом.
Так что вы можете сделать это
UIImage *image = nil;
if (carousel==recipeCarousel) {
image = [recipeItems objectAtIndex:index];
} else {
image = [packItems objectAtIndex:index];
}
или
NSArray *targetItems = nil;
if (carousel==recipeCarousel) {
targetItems = recipeItems;
} else {
targetItems = packItems;
}
UIImage *image = [targetItems objectAtIndex:index];