范围超出范围4目标c

Too*_*ink 2 substring objective-c nsstring ios nsrangeexception

我有一个NSStringlength4按道理,这应该工作,并且expYear做,而是expMonth抛出一个越界异常?

expYear = [expDate substringWithRange:NSMakeRange(0, 2)];
expMonth = [expDate substringWithRange:NSMakeRange(2, 3)];
Run Code Online (Sandbox Code Playgroud)

Wai*_*ain 11

范围是a location和a length,而不是开始和结束位置.

typedef struct _NSRange {
    NSUInteger location;
    NSUInteger length;
} NSRange;
Run Code Online (Sandbox Code Playgroud)

因此,您的起始位置2和长度3超出了结束.

根据正确的规格更改范围.