ibireme/YYImage

In _NSStringPathScale function ,"result.range.location >= 3" should be "result.range.length >= 3".

tongyuhu opened this issue · 0 comments

static CGFloat _NSStringPathScale(NSString *string) {
if (string.length == 0 || [string hasSuffix:@"/"]) return 1;
NSString *name = string.stringByDeletingPathExtension;
__block CGFloat scale = 1;

NSRegularExpression *pattern = [NSRegularExpression regularExpressionWithPattern:@"@[0-9]+\\.?[0-9]*x$" options:NSRegularExpressionAnchorsMatchLines error:nil];
[pattern enumerateMatchesInString:name options:kNilOptions range:NSMakeRange(0, name.length) usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
    if (result.range.location >= 3) {
        scale = [string substringWithRange:NSMakeRange(result.range.location + 1, result.range.length - 2)].doubleValue;
    }
}];

return scale;

}

return 2 when pass icon@2x.png, but return 1 when pass ic@2x.png.
so "result.range.location >= 3" should be "result.range.length >= 3"