NSBundle pathForResource not working

ios, nsbundle, objective-c

Solution

Shouldn't this line:

pathToImage = [[NSBundle mainBundle] pathForResource:[self primitiveValueForKey:@"cLocalImageName"] ofType:@".png"];

be this:

pathToImage = [[NSBundle mainBundle] pathForResource:[self primitiveValueForKey:@"cLocalImageName"] ofType:@"png"];

?

Problem

On iOS 6 this block of code works fine: ``` - (NSString*)cLocalImageName { [self willAccessValueForKey:@"cLocalImageName"]; NSString*pathToImage; if ([self.cIsUserCreated boolValue]) { pathToImage = [self primitiveValueForKey:@"cLocalImageName"]; }else{ pathToImage = [[NSBundle mainBundle] pathForResource:[self primitiveValueForKey:@"cLocalImageName"] ofType:@".png"]; } [self didAccessValueForKey:@"cLocalImageName"]; return pathToImage; } ``` Namely this line always returns the correct file path: ``` pathToImage = [[NSBundle mainBundle] pathForResource:[self primitiveValueForKey:@"cLocalImageName"] ofType:@".png"]; ``` However, on iOS 5 that line always returns nil, and I instead have to call: ``` pathToImage = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png",[self primitiveValueForKey:@"cLocalImageName"]]]; ``` Can anyone give me any insight into why this is an issue on iOS 5? Things I've ruled out: • [self primitiveValueForKey:@"cLocalImageName"] is not returning nil. • The .png objects are in fact present in the compiled .app package once the app is built.

Original source