我想構建一個簡單的屏幕保護程序。我做的第一件事是從資產目錄加載圖像[[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