簡體   English   中英

如何知道圖像是否仍然緩存在Watch上

[英]How to know whether or not an image is still cached on the Watch

在WatchKit中,Apple為我們提供了大約20mb的空間來緩存圖像。

這個緩存在啟動時是持久的,並且當空間耗盡時圖像被驅逐。

問題是 - 你怎么知道圖像是否仍然在緩存中?

請考慮以下情況:使用鍵將圖像緩存到手表以供將來顯示。 當顯示圖像的時候,你怎么知道它仍然被緩存?

如果沒有辦法知道,那么你必須再次緩存它。 如果每次顯示它都必須將其發送到設備,這將完全破壞緩存的目的。

編輯 :API已更新以在iOS 8.2 beta 2中修復此問題。有關詳細信息,請參閱Dave的答案。

編輯2 :這在iOS 8.2 beta 3中完全修復。有關詳細信息,請參閱John的答案。

除了大衛的回答,這是值得注意的是,這里還有上WKInterfaceDevice,屬性cachedImages ,這對於運行的應用程序當前設備上返回的所有緩存圖片的一個NSDictionary。

WKInterfaceDevice類參考

字典中的每個條目都是一個NSString,其中包含與圖像關聯的名稱。 每個條目的值是一個NSNumber對象,包含圖像的大小(以字節為單位)。 當您需要刪除緩存中的圖像時,請使用此信息來幫助選擇要刪除的圖像。

使用iOS 8.2 Beta 2可以實現此功能。在B2中, -addCachedImage:named: methods現在返回BOOL 如果圖像已添加到緩存,它將返回YES如果不是,則返回NO (因為已達到大小限制)。

操作系統也不會清除緩存; 您可以使用適當的-remove...方法-remove...清除它。

因此,如果您的擴展程序維護了它已發送到Watch的所有圖像的列表,那么您可以明確地知道緩存中的圖像。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM