首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >超出边界的范围4目标c

超出边界的范围4目标c
EN

Stack Overflow用户
提问于 2014-02-06 15:40:08
回答 2查看 1.4K关注 0票数 2

我有一个NSString of length 4。从逻辑上讲,这应该可以工作,而expYear可以,但是expMonth抛出了一个超出界限的异常?

代码语言:javascript
复制
expYear = [expDate substringWithRange:NSMakeRange(0, 2)];
expMonth = [expDate substringWithRange:NSMakeRange(2, 3)];
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-06 15:41:13

范围是locationlength,而不是开始和结束位置。

代码语言:javascript
复制
typedef struct _NSRange {
    NSUInteger location;
    NSUInteger length;
} NSRange;

因此,使用2的起始位置和长度的3,您将超过结束。

根据正确的规范更改范围。

票数 11
EN

Stack Overflow用户

发布于 2014-02-06 15:41:44

这个范围并不意味着从2到3开始,而是从2开始,然后转到接下来的3个索引,所以在本例中,您的结果是2-5,所以这一行超出了范围:

代码语言:javascript
复制
expMonth = [expDate substringWithRange:NSMakeRange(2, 3)];
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21607323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档