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
误以为变量溢出后会截断(然而并没有,只会报错)
举例
var a: UInt8 = 0x80
a += UInt8(0x01)
a += UInt8(0x80) // error:a == 0x101;UInt8溢出
报错
类型A/类型B
推荐做法
var a: UInt8 = 0x80
var b: Int = Int(a)
b += 0x01
b += 0x80
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的同学易犯,头次接触该错误的同学往往好无头绪,入门级错误。
iOS开发笔记错误集的更多相关文章
- 菜鸟手下的iOS开发笔记(swift)
在阳春4月的一天晨会上,有一个老板和蔼的对他的一个菜鸟手下说:“你既然会Android,那你能不能开发iOS?” 不是说好的要外包的吗?内心跌宕,但是表面淡定的菜鸟手下弱弱的回道:“可以试试”. 第二 ...
- iOS开发笔记7:Text、UI交互细节、两个动画效果等
Text主要总结UILabel.UITextField.UITextView.UIMenuController以及UIWebView/WKWebView相关的一些问题. UI细节主要总结界面交互开发中 ...
- iOS开发笔记-两种单例模式的写法
iOS开发笔记-两种单例模式的写法 单例模式是开发中最常用的写法之一,iOS的单例模式有两种官方写法,如下: 不使用GCD #import "ServiceManager.h" ...
- iOS开发笔记--什么时候调用layoutSubviews
iOS开发笔记--什么时候调用layoutSubviews 分类: iOS2014-04-22 16:15 610人阅读 评论(0) 收藏 举报 今天在写程序时候遇见layoutSubviews触发时 ...
- IOS开发笔记(4)数据离线缓存与读取
IOS开发笔记(4)数据离线缓存与读取 分类: IOS学习2012-12-06 16:30 7082人阅读 评论(0) 收藏 举报 iosiOSIOS 方法一:一般将服务器第一次返回的数据保存在沙盒里 ...
- IOS开发笔记 IOS如何访问通讯录
IOS开发笔记 IOS如何访问通讯录 其实我是反对这类的需求,你说你读我的隐私,我肯定不愿意的. 幸好ios6.0 以后给了个权限控制.当打开app的时候你可以选择拒绝. 实现方法: [plain] ...
- 【Swift】iOS开发笔记(二)
前言 这个系列主要是一些开发中遇到的坑记录分享,有助于初学者跨过这些坑,攒够 7 条发一篇. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯 ...
- 【IOS开发笔记02】学生管理系统
端到端的机会 虽然现在身处大公司,但是因为是内部创业团队,产品.native.前端.服务器端全部坐在一起开发,大家很容易做零距离交流,也因为最近内部有一个前端要转岗过来,于是手里的前端任务好像可以抛一 ...
- iOS开发笔记4:HTTP网络通信及网络编程
这一篇主要总结iOS开发中进行HTTP通信及数据上传下载用到的方法.网络编程中常用的有第三方类库AFNetworking或者iOS7开始新推出的NSURLSession,还有NSURLSession的 ...
随机推荐
- 安防工程商必须知道的PoE供电真相
问题一:何为PoE技术? PoE (Power Over Ethernet)指的是在现有的以太网Cat.5布线基础架构不作任何改动的情况下,在为一些基于IP的终端(如IP电话机.无线局域网接入点AP. ...
- mysql索引知识简单记录
简介 今天记录下索引基础知识 1.mysql单表最多支持多少个索引,索引总长度为多少? 索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型. ...
- go get fatal: could not read Username for 'https://code.xxx.org': terminal prompts disabled
用go get下载私有代码库的时候,莫名其妙产生了以下错误,公有代码库没有影响. chenchideMacBook-Pro:~ chenchi$ go get code.xxx.org/adarch/ ...
- go语言调用append之后是否重新分配内存?
查看tidb源代码:::util/charset/charset.go,下面有段代码: // GetAllCharsets gets all charset descriptions in the l ...
- Java窗体居中显示的2种方法
第1种方法: //setSize(300, 200); pack(); // 得到显示器屏幕的宽.高 int width = Toolkit.getDefaultToolkit().getScreen ...
- (原)关于MEPG-2中的TS流数据格式学习
关于MEPG-2中的TS流数据格式学习 Author:lihaiping1603 原创:http://www.cnblogs.com/lihaiping/p/8572997.html 本文主要记录了, ...
- tomcat 配置 使用综合
[参考]Tomcat 7.0安装与配置 [参考]tomcat 控制台日志(startup.bat)输出到指定文件中 [参考]将Java web应用部署到Tomcat 及部署到Tomcat根目录 的三种 ...
- ios原生项目内嵌u3d工程
本文一反常态,目标是把u3d工程以framewWork形式 内嵌原生IOS项目 1.xcode中新建Cocoa Touch FrameWork.取名u3dFrameWork 2.把u3d导出的xcod ...
- 114、drawable和mipmap 目录下图片的区别
android 在 API level 17 加入了 mipmap 技术,对 bitmap 图片的渲染支持 mipmap 技术,来提高渲染的速度和质量.mipmap 是一种很早就有的技术了,翻译过来就 ...
- iOS - 集成高德SDK解决Marker点重复点击无效问题
场景: 在处理Marker点击事件时,此时地图上有Marker点A及Marker点B,当选中Marker点A后,SDK方法 "didSelectAnnotationView"响应了 ...