ios - 范围超出范围大小 4 objective-c

标签 ios objective-c nsstring substring nsrangeexception

我有一个 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/

相关文章:

ios - 检测以纵向或横向全屏播放的视频

iphone - 我何时以及为何需要释放对象?

ios - 在源 Controller 中委托(delegate)问题

ios - willSelectRowAtIndexPath 不改变 detailTextLabel

ios - 我应该如何在 iOS 中将音效与 UI 动画同步?

ios - Cocoapods - 是否可以自定义第 3 方 iOS 库?

objective-c - 操作完成后更改页面

iphone - 从 NSString 中删除特殊字符

ios - 将 NSString 的 NSArray 转换为 NSNumber 的 NSArray 的更好方法

ios - Objective c 自定义对象描述问题