我想弄清楚是否有可能取消對EventKit數據庫的查詢。我用一個與特定周內的所有事件匹配的謂詞來查詢EventKit。此查詢可能需要一些時間,具體取決於返回的事件數量。iPhone - 有什麼辦法可以取消對EventKit數據庫的請求嗎?
爲什麼我要這個?那麼,在我的iPhone應用程序中,用戶瀏覽他的日曆周。每當向用戶顯示新的一週時,應用程序都必須加載該周的所有事件。因爲這需要幾百毫秒,所以應用程序並不像應該那樣響應。用戶基本上必須稍微瀏覽一下,因爲每次瀏覽到另一週時,用戶界面都會暫時停頓一段時間。
我已經使用「performSelectorInBackground」在後臺線程中運行查詢。這仍然阻礙了用戶界面。我在想的解決方案是,無論用戶何時決定瀏覽到另一週,當前的EventKit查詢都會被取消。這樣做的缺點可能是用戶有時並沒有立即看到那一週的事件,因爲查詢被取消了,但是用戶界面在任何時候都會有高度的響應。
所以這是可能的嗎?有人知道嗎?我可以取消一個EventKit查詢嗎?也許通過停止正在運行的線程?歡迎任何建議!
是的,你是對的eventsMatchingPredicate是我現在正在抓取事件的當前方式。我也看到了你在文檔中建議的方法。但是,當我很快嘗試了它似乎只是讓我的應用程序完全卡住(無限循環?)。也許我沒有正確使用它。我會再試一次,這似乎是要走的路!謝謝! –