编写高质量代码-OC 第2章 数据类型、集合和控制语句
8、C语言与Objective—C语言的关系条件是充分而非必要条件
9、高度警惕空指针和野指针的袭击
- 1、空指针(NULL指针),是指没有存储任何内存地址的指针。野指针,是指向“垃圾内存”(不可用内存)的指针
- 2、利用野指针发消息是很危险的。
- 3、利用空指针发消息是没有任何问题的。
10、在64位环境下尽可能利用标记指针
- 1、利用标记(Tagged)指针,可以在指针地址中保存或附加更多地信息。
- 2、利用标记(Tagged)指针处理NSNumber,直接可以把实际的值保存到指针中,而无须再去访问堆中的数据,可提高内存访问速度和整体运算速度。
- 3、在32位和64位的环境下,isa指针会产生不同的变化。
11、谨记兼容32位和64位环境下代码编写事项
- 1、不要将长整型数据赋予整型
- 2、利用用NSInteger来处理32位和64位之间的转换
- 3、创建数据结构要注意固定大小和对其
12、清楚常量字符串和一般字符串的区别
- 1、由于编译器的优化,相同内容的常量字符串的地址值是完全相同的
- 2、如果使用常量字符串来初始化一个字符串,那么这个字符串也将是相同的常量
- 3、对常量字符串永远不要release
13、在访问集合时要优先考虑使用快速枚举
14、有序对象适宜存于数组,而无序对象适宜存于集
- 1、数组(NSArray)可维持持续性,故适宜存储有序的对象,但每一项必须是Objective-C对象。集(Sets)不维持秩序,故适宜存储无序对象。
- 2、同一数组(NSArray)可以保存不同的对象,但不能存储float、int、double等基本类型和nil,否则存储基本类型都会被设置为0,不能存储nil是因为数组必须用nil来结尾。
- 3、快速枚举是访问数组(NSArray)中的对象的一种比较快的方法。
- 4、使用NSArray和NSDictionary类可以直接将其内容写入磁盘进行持久化。
15、存在公共键时,字典是在对象之间传递信息的绝佳方式
16、明智而审慎地使用BOOL类型
- 1、整型转为BOOL形,使用三元(Ternery)操作符,以保证返回YES或NO值
- 2、整形转换为BOOL型的时候要避免直接和YES做对比
- 3、BOOL值进行逻辑运算(&&, ||, !)不但有效,而且还可以确保返回值安全的转为BOOL型,无须三元操作符
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了