ios開發中兩個常見問題解決方案

來源:互聯網
上載者:User

   ios開發中兩個常見問題解決方案來啦!大家知道蘋果手機使用的是ios系統,而且使用者量很龐大,所以ios開發也成了很熱門的行業。下文小樂哥給大家帶來ios開發中兩個常見問題解決方案,希望給技術員在ios開發中起到協助作用!

  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頁面,做一些活動的推廣。在iOS8上,我們的實現是一切OK的;但到了iOS7上,就發現這個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裡面,並做了些處理,這樣問題就解決了!

        :更多精彩教程請關注三聯設計教程 欄目,

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.