iOS開發筆記錯誤集

錯誤類型列舉this

錯誤類型A:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)spa

錯誤類型B:EXC_BREAKPOINT (code=EXC_ARM_BREAKPOINT, subcode=0xe7ffdefe)3d

錯誤類型C:signal SIGABRT(this class is not key value coding-compliant for the key XXXX)code

 

發生情形blog

錯誤使用01開發

誤覺得變量溢出後會截斷(然而並無,只會報錯)同步

舉例it

1 var a: UInt8 = 0x80
2 a += UInt8(0x01)
3 a += UInt8(0x80) // error:a == 0x101;UInt8溢出

報錯入門

類型A/類型Bclass

推薦作法

1 var a: UInt8 = 0x80
2 var b: Int = Int(a)
3 b += 0x01
4 b += 0x80
5 a = UInt8(b & 0xFF) // 取Int的低8位,可防止溢出

 評價:

與常見的語言特性不一樣,極易混淆,大坑級錯誤。

 

錯誤使用02

刪除或修改了@IBOutlet變量,但沒有同步刪除或修改@IBOutlet連接關係

舉例

從storyboard上「ctrl-拖拽」了一個Outlet:

@IBOutlet weak var imageTest: UIImageView!

而後刪除了該行代碼

或者將其修改成

@IBOutlet weak var imageTestttt: UIImageView!

報錯

類型C

推薦作法

在storyboard上尋中以前的imageView,而後在鏈接檢查窗口中所對應的引用刪除。

評價:

習慣用代碼開發UI的同窗易犯,頭次接觸該錯誤的同窗每每好無頭緒,入門級錯誤。

相關文章
相關標籤/搜索