NSBundle UIImage没有iOS 7特定

时间:2014-11-19 16:50:56

标签: xcode ios7 ios8 xcode6 nsbundle

我使用Xcode 6 Cocoa Touch Framework目标功能创建了一个框架。 当框架在iOS 8上运行的另一个应用程序中使用时,它可以正常工作,加载图像,拾取笔尖 - 故事板等。 当我在iOS 7设备上运行相同的应用程序时,代码被拾取,视图控制器显示,在nib的界面构建器中设置的图像显示出来。但是通过代码设置的图像没有显示出来。

图片显示在应用程序的内容中(当我显示包内容时)。

但它没有被提升。请看我的代码。

NSString *bundlePath = [NSString stringWithFormat:@"%@/Frameworks/TestFramework.framework", [[NSBundle mainBundle] bundlePath]];

NSBundle *frameworkBundle = [NSBundle bundleWithPath:bundlePath];
[frameworkBundle load];
NSString *imagePath = [NSString stringWithFormat:@"%@/Pic2.JPG", bundlePath];
UIImage *image = [UIImage imageNamed:imagePath];
NSLog(@"FrameworkBundle:%@", frameworkBundle);
NSLog(@"BundlePath:%@", bundlePath);
NSLog(@"ImagePath:%@",imagePath);
NSLog(@"Image:%@",image);
self.imageView3.image = image;

这是输出

2014-11-19 11:48:01.324 TestApp[95937:60b] FrameworkBundle:NSBundle </Users/nbkqkka/Library/Developer/CoreSimulator/Devices/A64CFDA9-EB0E-4B65-B119-A213CD500217/data/Applications/C942AA07-E416-48B3-AE96-C853DB349B64/TestApp.app/Frameworks/TestFramework.framework> (loaded)
    2014-11-19 11:48:01.324 TestApp[95937:60b] BundlePath:/Users/nbkqkka/Library/Developer/CoreSimulator/Devices/A64CFDA9-EB0E-4B65-B119-A213CD500217/data/Applications/C942AA07-E416-48B3-AE96-C853DB349B64/TestApp.app/Frameworks/TestFramework.framework
    2014-11-19 11:48:01.325 TestApp[95937:60b] ImagePath:/Users/nbkqkka/Library/Developer/CoreSimulator/Devices/A64CFDA9-EB0E-4B65-B119-A213CD500217/data/Applications/C942AA07-E416-48B3-AE96-C853DB349B64/TestApp.app/Frameworks/TestFramework.framework/Pic2.JPG
    2014-11-19 11:48:01.474 TestApp[95937:60b] Image:(null)

1 个答案:

答案 0 :(得分:2)

imageNamed的文档说:

  

文件的名称。如果这是图像第一次出现   加载后,该方法将查找具有指定名称的图像   应用程序的主要包。

它没有说明从完整路径加载。

你能用:

+ (UIImage *)imageWithContentsOfFile:(NSString *)path

代替?