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
。