在iOS開發中告別未定義selector

來源:互聯網
上載者:User

      objc和C++同為由C語言衍生出的OOP語言,但他們實現OOP的方式並不相同:在C++中,對象與方法在編譯器綁定;而在objc中,稱“方法”一詞為“訊息”,在程式運行時向對象發送訊息,即運行期綁定。

      兩種方式各有優劣,C++注重效能,objc注重靈活。

      然而運行期綁定給開發帶來問題——編程時拼字錯了方法名,編譯器並不報錯。筆者曾debug一小時,最後發現是方法名少寫了個冒號。

      為此筆者曾用過一個笨辦法——斷言某對象響應某方法,以此來排除錯誤可能。

      這當然太過麻煩,其實有個簡單的方法,可以上編譯器報warning:

      以Xcode 4為例,開啟一個項目,在左側導覽列中雙擊專案檔:

      在快顯視窗中將GCC waring項undeclared selector設為yes:


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.