2015-05-04 14 views
3

我使用- (BOOL)addCachedImage:(UIImage *)image name:(NSString *)name API WKInterfaceDevice來存儲圖像。當我使用圖像緩存時,「無法在手錶上找到名爲XXX的圖像」

的問題是,大部分的時間,當我嘗試使用setImageNamed:WKInterfaceImage使用這些緩存的圖片,我得到這個Unable to find image named XXX on watch錯誤導致一個空的圖像在屏幕上。 我堅持這一事實並非總是發生。

這發生在模擬器和設備上。

回答

2

我發現太長的圖像名稱(字符數> 255)會導致該錯誤。只要圖像名稱用於緩存圖像的時間越短,我就不會再有錯誤了。

+0

我還沒有聽說過這樣的問題。你能提供一個不起作用的名字的例子嗎?另外,你有沒有看過'[[WKInterfaceDevice currentDevice] cachedImages]'檢查名字? –

+0

在'addCachedImage:name'中設置任何非常長的名字,你應該得到一個錯誤,沒有必要給我一個例子。是的,我確實正確地檢查了'[[WKInterfaceDevice currentDevice] cachedImages]',只要名稱不是太長,我的代碼工作得很好。 –

+0

雖然它可能與名稱無關,但與哈希有關。我明天會進行更多的調查。 –

4

請到XCode左側邊欄的Project Navigator中的Assets.xcassets

在那裏選擇未找到的圖像。

對於我來說,只要將圖像放置在「2x」佔位符中,就可以工作。

如果您只是導入他們被放置在1x點的圖像,但蘋果手錶似乎至少需要2x分辨率。只需優化你的圖像,它將無縫工作。

+0

我正在處理下載的圖像,我想將其存儲在監視緩存中。所以在我的情況下沒有靜態圖像。這只是一個蘋果錯誤(如果我們可以稱之爲錯誤),請參閱上面接受的答案。 –