错误类型列举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的同窗易犯,头次接触该错误的同窗每每好无头绪,入门级错误。