IOS:在HomeDirectory中出错

我有这个代码

NSString *nextSequentialFile = [filePath stringByReplacingOccurrencesOfString:photoNumber withString:[NSString stringWithFormat:@"%d", (index + 1)] options:NSBackwardsSearch range:[filePath rangeOfString:photoNumber options:NSBackwardsSearch]]; 

但我有这个错误,我不明白这是发生。

 Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSCFString replaceOccurrencesOfString:withString:options:range:]: Range or index out of bounds' 

尝试:

 NSString *nextSequentialFile = [filePath stringByReplacingOccurrencesOfString:photoNumber withString:[NSString stringWithFormat:@"%d", (index + 1)] options:NSBackwardsSearch range:NSMakeRange(0, filePath.length)]; 

rangeOfString:photoNumber可能是超出范围的。 我build议logging你传递给这个方法的每个值,以便告诉哪个是错误的。

永远不要假设像rangeOfString:options:这样的方法rangeOfString:options:返回一个有效的范围。 从文档:

返回值

一个NSRange结构,在接收者的第一次出现的aString中给出位置和长度,以掩码中的选项为模。 如果未findaString或为空(@“”),则返回{NSNotFound,0}。

[强调添加]

因此,在尝试使用它之前先获取范围并检查NSNotFound

Interesting Posts