Can there be a condition in your code when the 2nd if loop (result1 < result2 && al == YES
) is called before the first one?
In that case, lbl1
would not be added on the view or not be allocated and hence cannot be removed.
You need to check that if lbl1 exists, only then remove it from its superview.
if(self.lbl1) [self.lbl1 removeFromSuperView];