oc基礎複習07-OC的弱語法(轉)
-
OC在運行過程當中纔會檢測對象有沒有實現相應的方法(動態監測),而即便沒有寫方法的實現代碼,在編譯、鏈接過程當中只會有警告,運行時會奔潰,若是在手機上運行這樣的代碼,運行過程當中就形成閃退!
-
1.若是對象調用了一個既沒有聲明又沒有實現的方法test,編譯能經過(有警告:warning: ‘Person‘ may not respond to ‘test‘),可是仍是能鏈接成功,可是運行時會出現下面的經典錯誤;
經典錯誤:不能識別消息發送給對象(運行時會監測方法有沒有實現),會使程序運行時自動崩潰(閃退)
-[Person test]: unrecognized selector sent to instance 0x7f9738403420
-
2.若是對象調用的方法只有聲明沒有實現,編譯能經過(有警告:warning: method definition for ‘test‘ not found [-Wincomplete-implementation]),可是能鏈接成功,運行時仍是會致使程序崩潰
-
3.若是對象調用的方法只有實現,沒有聲明,編譯能經過,能鏈接成功,也能順利運行,可是不採用這樣的寫法
-
4.只有類的聲明沒有類的實現也能夠順利運行,可是不採用這樣的寫法
代碼聯繫:對象
歡迎關注本站公眾號,獲取更多信息