我使用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)
答案 0 :(得分:2)
imageNamed的文档说:
文件的名称。如果这是图像第一次出现 加载后,该方法将查找具有指定名称的图像 应用程序的主要包。
它没有说明从完整路径加载。
你能用:
+ (UIImage *)imageWithContentsOfFile:(NSString *)path
代替?