在 iOS 6 上,这段代码可以正常工作:
- (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;
}
即这一行总是返回正确的文件路径:
pathToImage = [[NSBundle mainBundle] pathForResource:[self primitiveValueForKey:@"cLocalImageName"] ofType:@".png"];
但是,在 iOS 5 上,该行总是返回 nil,而我必须调用:
pathToImage = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png",[self primitiveValueForKey:@"cLocalImageName"]]];
谁能告诉我为什么这是 iOS 5 上的问题?
我已经排除的事情:
• [self primitiveValueForKey:@"cLocalImageName"] 没有返回零。
• 构建应用程序后,.png 对象实际上存在于已编译的.app 包中。