Skip to content

Commit

Permalink
Make it work when name contains extension.
Browse files Browse the repository at this point in the history
  • Loading branch information
dtorres committed Sep 26, 2014
1 parent 58045a4 commit f82b54d
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions OLImage.m
Original file line number Diff line number Diff line change
Expand Up @@ -88,17 +88,23 @@ @implementation OLImage

+ (id)imageNamed:(NSString *)name
{
NSString *requestedExtension = [name pathExtension];
if (requestedExtension) {
name = [name substringWithRange:NSMakeRange(0, name.length-(requestedExtension.length+1))];//ext + dot
}

NSPredicate *namePredicate = [NSPredicate predicateWithFormat:@"lastPathComponent contains[cd] %@", name];

NSURL *bundleURL = [[NSBundle mainBundle] bundleURL];
NSArray *paths = [[NSFileManager defaultManager] contentsOfDirectoryAtURL:bundleURL includingPropertiesForKeys:[NSArray array] options:0 error:NULL];
NSArray *namedPaths = [paths filteredArrayUsingPredicate:namePredicate];

if (namedPaths.count > 1) {
NSPredicate *gifPredicate = [NSPredicate predicateWithFormat:@"pathExtension contains[cd] %@", @"gif"];
NSArray *gifPaths = [namedPaths filteredArrayUsingPredicate:gifPredicate];
if (gifPaths.count > 0) {
namedPaths = gifPaths;
NSString *extension = requestedExtension ? : @"gif";
NSPredicate *extPredicate = [NSPredicate predicateWithFormat:@"pathExtension contains[cd] %@", extension];
NSArray *extPaths = [namedPaths filteredArrayUsingPredicate:extPredicate];
if (extPaths.count > 0) {
namedPaths = extPaths;
}
}

Expand All @@ -113,7 +119,7 @@ + (id)imageNamed:(NSString *)name

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"@([0-9]+)x\\." options:NSRegularExpressionCaseInsensitive error:NULL];

for (NSURL *aFileURL in namedPaths) {
for (NSURL *aFileURL in namedPaths.reverseObjectEnumerator) {
NSString *filename = [aFileURL lastPathComponent];
NSTextCheckingResult *result = [regex firstMatchInString:filename options:0 range:NSMakeRange(0, filename.length)];
if (result.numberOfRanges > 1) {
Expand Down

0 comments on commit f82b54d

Please sign in to comment.