Classes / Methods

@interface ArrayAssistant : NSObject
- (instancetype)initWithData:
    (NSArray<NSNumber *> *)data;
//multiple results through out
//pointers, like NSError **
- (void)getFirst:(int *)first
    last:(int *)last;
@end

@implementation ArrayAssistant {
    NSArray<NSNumber *> *_data;
}

- (instancetype)initWithData:
    (NSArray<NSNumber *> *)data {
    self = [super init];
    if (self) {
        _data = data;
    }
    return self;
}

- (void)getFirst:(int *)first
    last:(int *)last {
    *first = -1;
    *last = -1;
    if (_data.count > 0) {
        *first = [_data.firstObject intValue];
        *last = [_data.lastObject intValue];
    }
}
@end

ArrayAssistant *assistant =
    [[ArrayAssistant alloc]
        initWithData:@[@2, @3, @5]];

int first, last;
[assistant getFirst:&first last:&last];
//first is 2
//last is 5