我想构建一个简单的屏幕保护程序。我做的第一件事是从资产目录加载图像[[NSImage imagedNamed:]]
,该方法返回一个零值,这意味着它无法找到图像。当我尝试使用方法[[NSBundle mainBundle]URLForImageResource:]
直接从包中加载图像时,我也得到一个零值。我不明白为什么会发生这种情况。该图片位于资产目录和项目设置中,我已将其设置为资源包。为什么我无法加载位于资产目录中的图像?
1
A
回答
0
当我继续在互联网上搜索后,我发现屏幕保护程序是作为某种插件执行的,并且通过加载主包我加载了系统偏好包,这意味着我无法通过加载我的资源主包,而不是我必须加载捆绑bundleIdentifier或束保存的路径。 所以我的代码看起来像现在这样:
NSBundle*bundle=[NSBundle bundleWithIdentifier:@"com.myname.APOD"];
NSImage*image=[[NSImage alloc] initWithContentsOfFile:[bundle pathForResource:@"appimage" ofType:@"png"]];
0
您可以通过名字资产目录访问图像,但不使用的NSImage
的imageNamed:
方法 -
相反,你可以查询图像资源的bundle具体名称,例如找到类的包的图像请求图像您可以:
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
NSImage *myImage = [bundle imageForResource:@"MyImageName"];
其中MyImageName指的是你在你的资产目录分配的映像名称。
相关问题
- 1. 为什么图像无法加载?
- 2. 在资产目录中无法读取Swift图像
- 3. 为什么OpenGL无法正确显示我加载的图像?
- 4. 为什么我的代码无法加载任何图像?
- 5. 为什么我的图像未加载?
- 6. 无法从spring maven项目中的资源加载图像
- 7. 为什么图像预加载无效?
- 8. 为什么html table td无法从目录中找到图像?
- 9. 为什么我的Tomcat无法加载
- 10. 我的资产目录包含启动图像有什么问题?
- 11. 无法从资源加载位图
- 12. 我无法加载图像
- 13. 无法以编程方式加载图像资产Xamarin iOS
- 14. 为什么我无法在Tomcat的WEB-INF/classes目录中看到图像?
- 15. 为什么我无法加载资源:net :: ERR_FILE_NOT_FOUND
- 16. 从另一个目录加载资产
- 17. 在现有项目的资产目录中选择适用于图标资产目录中的图标
- 18. 图像资产目录颜色不变
- 19. 为什么我无法加载dylib?
- 20. 为什么我无法加载index.html?
- 21. 为什么无法从Android的此Url加载图像
- 22. Nginx的proxy_pass无法加载资产
- 23. 无法从HttpUrlConnection(PNG到位图)加载图像,inputStream中的位图为空
- 24. 为什么我的片段无法加载正确的视图?
- 25. 我无法在.JAR中加载图像
- 26. 为什么无法从Rails中的视图加载管道内的图像?
- 27. 为什么我无法将此目录添加到git?
- 28. 为什么上传到Heroku时我的图片无法加载
- 29. 为什么我无法将资产绑定一次?
- 30. 什么是最好的方式来获取资产目录的矢量图像
'[NSImage imageNamed:]'用于访问应用程序包中的图像,而不是资产目录。为什么你不能将图像放入应用程序包中? – Droppy
我已经为视网膜和非视网膜mac优化了我的图像版本,所以我认为最好的方式就是资产目录。当然,我可以直接将图像放在应用程序包中,但这也不起作用。 – ok404