我有一个 length
4 的 NSString
。从逻辑上讲,这应该有效,expYear
可以,但是 expMonth
抛出越界异常?
expYear = [expDate substringWithRange:NSMakeRange(0, 2)];
expMonth = [expDate substringWithRange:NSMakeRange(2, 3)];
最佳答案
范围是一个位置
和一个长度
,而不是开始和结束位置。
typedef struct _NSRange {
NSUInteger location;
NSUInteger length;
} NSRange;
因此,如果起始位置为 2
,长度为 3
,则超出了结尾。
根据正确的规范更改范围。
关于ios - 范围超出范围大小 4 objective-c ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21607323/