gpt4 book ai didi

ios - 从 Bundle 加载图像我得到一个 nil

转载 作者:行者123 更新时间:2023-11-29 13:54:55 26 4
gpt4 key购买 nike

当我尝试使用 NSBundle 从我的项目中获取 UIImage 时,我得到了一个 nil 值。我将图像放入 .xcassests

这是我从包中加载图像的代码。

- (UIImage *)imageRating:(NSString *)imageName
{
return [UIImage imageNamed:imageName inBundle:[MyClass bundle] compatibleWithTraitCollection:nil];
}

这就是捆绑方法。

+ (NSBundle *)bundle
{
return [NSBundle bundleForClass:[self class]];
}

知道为什么我得到一个零值。

最佳答案

估计资源路径不对

你的图片放在.xcassests中,最后打包到.app文件中,一般在main bundle中使用。

如果你的项目结构中包含framework,只是在framwork中获取当前bundle,那么路径不是main bundle下的资源,而是框架的捆绑资源。

因为我不知道你的项目结构,下一步是知道打印包的路径并将其与主包路径进行比较。

- (UIImage *)imageRating:(NSString *)imageName
{
NSBundle *bundle = [MyClass bundle];
NSBundle *mainBundle = [NSBundle mainBundle];
NSLog(@"bundle: %@\n main bundle: %@",imageBundle);
return [UIImage imageNamed:imageName inBundle:[MyClass bundle] compatibleWithTraitCollection:nil];
}

如果路径不同,有两种方式。

  1. 将资源以bundle的形式放入famework

  2. [MyClass bundle] 更改为 [NSBundle mainBundle]

关于ios - 从 Bundle 加载图像我得到一个 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57150809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com