• iOS开发笔记错误集


    错误类型列举

    错误类型A:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

    错误类型B:EXC_BREAKPOINT (code=EXC_ARM_BREAKPOINT, subcode=0xe7ffdefe)

    错误类型C:signal SIGABRT(this class is not key value coding-compliant for the key XXXX)

     

    发生情形

    错误使用01

    误以为变量溢出后会截断(然而并没有,只会报错)

    举例

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

    报错

    类型A/类型B

    推荐做法

    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的同学易犯,头次接触该错误的同学往往好无头绪,入门级错误。

     

  • 相关阅读:
    uva 11549
    uva 11078
    uva 1335
    uva 1267
    uva 11520
    uva 12124
    uva 10795 A Different Task
    ACM俱乐部算法基础练习赛(1)
    【BZOJ1010】玩具装箱
    【BZOJ1901】Dynamic Rankings
  • 原文地址:https://www.cnblogs.com/ansersion/p/9152507.html
Copyright © 2020-2023  润新知