“wait_fences:未收到回復:10004003”?由于以下代碼行,我第一次(也是第一次)加載了我的視圖時出現了這個神秘的錯誤:- (void)viewWillAppear:(BOOL)animated{
[textField becomeFirstResponder];}有一個明顯的(約3 - 4秒,甚至在模擬器上)延遲,因為這使我的應用程序感到反應遲鈍。有誰知道如何解決這一問題?我在Apple的網站上找不到任何文檔,或者在Google或Google上找到任何解決方案。奇怪的是,如果我把線放入-viewDidAppear:而不是-viewWillAppear:; 也就是說,不是打印錯誤僅在第一次鍵盤顯示永不再,該錯誤不打印第一次,但之后每次。這給我帶來了很大的麻煩。
3 回答

白板的微信
TA貢獻1883條經驗 獲得超3個贊
覆蓋-viewDidAppear:
,而不是-viewWillAppear
,并確保打電話[super viewDidAppear:]
。當您不在屏幕上時(“將出現”),您不應該執行動畫。和-viewDidAppear:
文檔說明,你必須調用super
,因為他們有自己的事情要做。

慕雪6442864
TA貢獻1812條經驗 獲得超5個贊
我很快就遇到了類似的錯誤:
解散模態視圖
更新主視圖
提出一個新的模態視圖
我注意到我只是在模擬器中而不是在設備上。另外,我陷入了無限循環。
我的解決方案是推遲新模態視圖的呈現。似乎快速更新視圖層次結構導致Apple的代碼中出現了一些競爭條件。
考慮到這一點,試試這個:
- (void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; [textField performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.1]; }
您可能在為尚未在屏幕上顯示UITextField的鍵盤時遇到問題。這可能會導致類似我的問題。
此外,為了以防萬一,您在呈現鍵盤之前暫停給予層次結構更新時間。
希望這可以幫助。

四季花海
TA貢獻1811條經驗 獲得超5個贊
檢查您是否只與主線程上的UI進行交互。我wait_fences: failed to receive reply: 10004003
坐在那里等待UIAlertView顯示大約5秒,因為相關代碼是在后臺線程上執行的。您可以通過將代碼放入塊并將其發送到主線程來確保:
dispatch_async(dispatch_get_main_queue(), ^{ if (!success) { // Inform user that import failed UIAlertView * importFailedAlert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"ErrorTitle5", @"Import failed") message:NSLocalizedString(@"Error5", @"Something went wrong") delegate:nil cancelButtonTitle:NSLocalizedString(@"OK", nil) otherButtonTitles:nil]; [importFailedAlert show]; }});
- 3 回答
- 0 關注
- 541 瀏覽
添加回答
舉報
0/150
提交
取消