以下代码返回 path
的图像对象,并在iOS 11:
NSString *path = [anotherPath stringByAppendingPathComponent:file];
UIImage *image = [UIImage imageNamed:path];
但是,在iOS 11中,image
返回null
。这是iOS 11错误吗?
+[UIImage imageNamed:]
被记录为获取文件名而不是路径。如果要从路径加载图像,请使用+[UIImage imageWithContentsOfFile:]
。
如果您的路径是指捆绑包中的嵌套文件夹中的某些内容,则可以向NSBundle
询问资源的路径,然后将其传递给+[UIImage imageWithContentsOfFile:]
。这看起来像
NSString *path = [NSBundle.mainBundle pathForResource:@"foo" ofType:@"jpg" inDirectory:@"dir"];
UIImage *image = [UIImage imageWithContentsOfFile:path];
正如@drewster指出的那样,路径不正确;我有一个较低的案例字符。但是,我注意到iOS 8忽略了这一点。