range out of bounds size 4 objective c

ios, nsrangeexception, nsstring, objective-c, substring

Solution

A range is a `location` and a `length`, not a start and end position.

typedef struct _NSRange {
    NSUInteger location;
    NSUInteger length;
} NSRange;

So with a start location of `2` and a length of `3` you overrun the end.

Change the range based on the correct specification.

Problem

I have an `NSString` of `length` 4. Logically, this should work, and `expYear` does, but `expMonth` throws an out of bounds exception? ``` expYear = [expDate substringWithRange:NSMakeRange(0, 2)]; expMonth = [expDate substringWithRange:NSMakeRange(2, 3)]; ```

Original source