Поток управления / Условные операторы

//guard clause: check the bad state
//first and leave early
NSNumber *popOrNil(NSMutableArray *stack) {
    if (stack.count == 0) {
        return nil;
    }
    NSNumber *last = stack.lastObject;
    [stack removeLastObject];
    return last;
}

NSMutableArray *stack =
    [NSMutableArray array];
[stack addObject:@1];

NSNumber *n1 = popOrNil(stack);
//n1 is 1

NSNumber *n2 = popOrNil(stack);
//n2 is nil