-2

我是 iphone 开发的菜鸟,我正在尝试解析字符串的子字符串。我要解析的子字符串每次解析时的长度都会有所不同,因此我使用带范围的子字符串来指示子字符串始终介于其间的两个字符。问题是,当我得到一个异常时,异常 - [__NSCFString substringWithRange:]: Range or index out of bounds。任何帮助是极大的赞赏。

我的代码

NSString * storyLink = @"http://link.brightcove.com/services/link/bcpid1683318714001/bclid1644543007001/bctid2212677853001?src=mrss"//<--Parsing the numbers between "bctid" & "?src"
NSRange start = [storyLink rangeOfString:@"d" options:NSBackwardsSearch];
NSRange end = [storyLink rangeOfString:@"?" options:NSBackwardsSearch];
NSString *clipid = [storyLink substringWithRange:NSMakeRange(start.location, end.location)];//<--Exception thrown here
NSLog(@"clipid: %@", clipid);
4

1 回答 1

2

范围被解释为形式{ begin, length }。结构的成员NSRange被称为locationandlength而不是beginand是有原因的end。将您的代码更改为

NSMakeRange(start.location, end.location - start.location)

它会正常工作。

于 2013-03-08T23:38:54.853 回答