我有一個導入序列,從檔案中讀取,解壓縮包含文件併爲每個文件創建相應的核心數據實體。這整個過程發生在後臺,併爲每個線程創建了一個單獨的上下文等,因此一切正常。從UIAlertViewDelegate回調到後臺線程回調
事實證明,這個特定的導入序列的一個令人滿意的功能是,我們允許任何輸入文件被密碼保護(其中有幾個包含在檔案中),所以我需要檢查一個文件是否是密碼在這種情況下,用戶將被提示通過UIAlertView
輸入密碼。
這是我的問題開始的地方。
我發送UIAlertView
提示到我應該的主線程,將我的導入器object
指定爲delegate
並等待用戶輸入。
當用戶輸入密碼並點擊確定/取消時,委託回調仍在主線程中,因此我無法操作相應的核心數據實體,而無需大量工作(即存儲對受管理對象ID的引用創建新的上下文等)。
我的問題:
是否有可能在導入過程正努力回到我原來的後臺線程?我會怎麼做呢?
感謝, 羅格
難道你的進口商保持其螺紋參考使用'[NSThread currentThread ]'然後,在委託回調中,使用'performSelector:onThread:withObject:waitUntilDone:'將密碼傳遞迴進口商的線程? –
在開始處理密碼之前,我會檢查所有的密碼文件,並提前要求提供密碼。這樣,如果我進行了長時間的導入,我可以啓動它並走開,一小時後不再回來,期待它完成,並且發現它在第三個文件中等待我輸入密碼。 – lnafziger