我有一个NSString of length 4。从逻辑上讲,这应该可以工作,而expYear可以,但是expMonth抛出了一个超出界限的异常?
expYear = [expDate substringWithRange:NSMakeRange(0, 2)];
expMonth = [expDate substringWithRange:NSMakeRange(2, 3)];发布于 2014-02-06 15:41:13
范围是location和length,而不是开始和结束位置。
typedef struct _NSRange {
NSUInteger location;
NSUInteger length;
} NSRange;因此,使用2的起始位置和长度的3,您将超过结束。
根据正确的规范更改范围。
发布于 2014-02-06 15:41:44
这个范围并不意味着从2到3开始,而是从2开始,然后转到接下来的3个索引,所以在本例中,您的结果是2-5,所以这一行超出了范围:
expMonth = [expDate substringWithRange:NSMakeRange(2, 3)];https://stackoverflow.com/questions/21607323
复制相似问题