Выход за пределы размера 4 объектива с
У меня есть NSString
из length
4. По логике, это должно работать, и expYear
делает, но expMonth
создает исключение вне пределов?
expYear = [expDate substringWithRange:NSMakeRange(0, 2)];
expMonth = [expDate substringWithRange:NSMakeRange(2, 3)];
2 ответа
Решение
Диапазон location
и length
, не начальная и конечная позиция.
typedef struct _NSRange {
NSUInteger location;
NSUInteger length;
} NSRange;
Так с начальным местоположением 2
и длина 3
ты опустошил конец.
Измените диапазон, основываясь на правильной спецификации.
Диапазон не означает, скажем, от 2 до 3, это, скажем, начало от 2 до следующих 3 индексов, так что в этом примере вы получите 2-5, так что эта строка выходит за пределы:
expMonth = [expDate substringWithRange:NSMakeRange(2, 3)];