gpt4 book ai didi

cocoa - 在 OS X Yosemite (10.10) 中从框架加载图像的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-03 16:05:30 24 4
gpt4 key购买 nike

我正在开发一个包含通知中心小部件(或“今日”扩展)的 Yosemite 应用程序。我有一个框架,用于存储所有共享代码和资源,其中包括一些图像。无论我只使用 PNG 还是 Assets 目录,如果我只使用标准 NSImage 方法 imageNamed:,它们都不会加载。查看文档,这显然是预期的 - 它只在主包中查找。

在 iOS 上,UIImage 有一个新方法 imageNamed:inBundle:companyWithTraitCollection: 非常适合解决这个问题。我没有看到任何与 NSImage 类似的内容。

似乎最好的选择是做这样的事情:

[[NSBundle bundleForClass:[self class]] imageForResource:@"name"];

主要问题是它不使用缓存。为了做到这一点,我在类别中添加了自己的方法:

+ (NSImage *)imageNamed:(NSString *)name inBundle:(NSBundle *)bundle {
NSImage *image = [NSImage imageNamed:name];
if (image == nil) {
image = [bundle imageForResource:name];
[image setName:name];
}
return image;
}

这看起来不错,但是有更好的解决方案吗?

最佳答案

目前没有 API 可以在一个方法调用中执行此操作,但我刚刚提交了radar://25632204 来请求添加 +[NSImage imageNamed:inBundle:] 以便与 UIKit 保持一致.

关于cocoa - 在 OS X Yosemite (10.10) 中从框架加载图像的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25091236/

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