Impedir NSRangeException no subarrayWithRange

Eu tenho esse código que me permite transmitir um índice e recuperar seletivamente um número de imagens em uma matriz para um determinado comprimento de intervalo - dependendo da orientação.

Quando em retrato, o intervalo deve ser de 20 itens por índice, e eu tenho 43 itens no total. No entanto, quando passo no último índice, recebo uma exceção fora do intervalo do índice 59 além dos limites de [0..42].

NSArray *tempArray = [self imageData];

UIDeviceOrientation devOr = [[UIDevice currentDevice] orientation];

int kItemsPerView;

if (UIDeviceOrientationIsPortrait(devOr)) {
    kItemsPerView = 20;
}else {
    kItemsPerView = 14;
}

NSRange rangeForView = NSMakeRange( index * kItemsPerView, kItemsPerView ); 

NSArray *subArray = [[tempArray subarrayWithRange:rangeForView] retain];
NSMutableArray *imagesForView = [NSMutableArray arrayWithArray:subArray];
[subArray release];

return imagesForView;

Como posso evitar isso?

Obrigado.

questionAnswers(2)

yourAnswerToTheQuestion