iOS開發中兩個常見問題的處理
(一) “Unknown class XXViewController in Interface Builder file.” 問題處理
最近在靜態庫中寫了一個XXViewController類,然後在主工程的xib中,將xib的類指定為XXViewController,程式執行時,報瞭如下錯誤:
Unknown class XXViewController in Interface Builder file.
之前也遇到這個問題,但已記得不太清楚,所以又開始在stackoverflow上找答案。
其實這個問題與Interface Builder無關,最直接的原因還是相關的symbol沒有從靜態庫中載入進來。這種問題的處理就是在Target的”Build Setting”–>“Other Link Flags”中加上”-all_load -ObjC”這兩個標識位,這樣就OK了。
(二)關於Unbalanced calls to begin/end appearance transitions for …問題的處理
我們的某個業務有這麼一個需求,進入一個列表後需要立馬又push一個web頁面,做一些活動的推廣。在iOS 8上,我們的實現是一切OK的;但到了iOS 7上,就發現這個web頁面push不出來了,同時控制檯給了一條警告訊息,即如下:
Unbalanced calls to begin/end appearance transitions for ...
在這種情況下,點選導航欄中的返回按鈕時,直接顯示一個黑屏。
我們到stackoverflow上查了一下,有這麼一段提示:
occurs when you try and display a new viewcontroller before the current view controller is finished displaying.
意思是說在當前檢視控制器完成顯示之前,又試圖去顯示一個新的檢視控制器。
於是我們去排查程式碼,果然發現,在viewDidLoad裡面去做了次網路請求操作,且請求返回後就去push這個web活動推廣頁。此時,當前的檢視控制器可能並未顯示完成(即未完成push操作)。
Basically you are trying to push two view controllers onto the stack at almost the same time.
當幾乎同時將兩個檢視控制器push到當前的導航控制器棧中時,或者同時pop兩個不同的檢視控制器,就會出現不確定的結果。所以我們應該確保同一時間,對同一個導航控制器棧只有一個操作,即便當前的檢視控制器正在動畫過程中,也不應該再去push或pop一個新的檢視控制器。
所以最後我們把web活動的資料請求放到了viewDidAppear裡面,並做了些處理,這樣問題就解決了。
參考
相關文章
- 軟體開發中存在的25個常見問題
- RDSforMySQLMysqldump常見問題和處理ORMMySql
- HTML + CSS處理常見問題HTMLCSS
- Zabbix 常見問題處理整理
- iOS開發常見問題之綜合篇iOS
- 常見的幾個Qt程式設計問題的處理QT程式設計
- iOS開發執行報錯、常見問題iOS
- GoldenGate常見問題及處理Go
- 開發過程中mysql常見問題MySql
- 微信小程式中開發常見問題微信小程式
- Mac遊戲安裝常見問題處理Mac遊戲
- JAVA常見開發問題Java
- C#開發中,學習整理的 New 的幾個常見問題C#
- 常見問題--plsql處理ora-28000SQL
- SQL Server資料庫中處理空值時常見問題SQLServer資料庫
- Laravel 個人開發常見問題Laravel
- 近期BSN開發常見問題
- DDC/NFT開發常見問題
- BREW常見問題解答(FAQ 5)-處理器和事件處理 (轉)事件
- 近期BSN開發常見問題答疑
- DDC開發常見問題答疑(二)
- Vue.js開發常見問題Vue.js
- MFC開發常見問題的回答2 (轉)
- MFC開發常見問題的回答3 (轉)
- objc系列譯文(2.2):iOS開發中一些常見的並行處理OBJiOS並行
- mysql問題處理兩則MySql
- java中list的常見問題。Java
- 5種常見的 DNS 故障診斷及問題處理方法DNS
- PHP 開發版本問題處理PHP
- vue.js 前端開發常見問題Vue.js前端
- react-native開發常見問題React
- 前端開發常見問題精選(五)前端
- 微信小程式開發常見問題(四)微信小程式
- 微信小程式開發常見問題(五)微信小程式
- 微信小程式開發常見問題(七)微信小程式
- VueJS 開發常見問題集錦VueJS
- DELPHI開發Web程式常見問題 (轉)Web
- 常見問題01:計算地球上兩個點的距離