Objective-C 中 nil 与基本值处理全解析
1. 与 nil 为友
在 Objective-C 里,向 nil 发送消息通常不会有实际动作,但这并不意味着参数不会产生副作用。在消息分发之前,参数会被组装并压入栈中,参数表达式里发送的消息或者其他副作用(像值的后自增操作)依旧会发生。明确将接收者与 nil 作比较,若相等就跳过消息,这样做的一个原因是避免组装参数时出现不必要的副作用。
1.1 nil 返回零值
只要调用者期望消息返回表 7 - 1 里的某种变量类型,nil 接收者总会向调用者返回 nil 或者 0。兼容的变量类型基本上是任意指针或者标量。
| 返回类型 | 返回值 |
|---|---|
| id | nil |
| 任意类型的指针 | NULL |
| BOOL | NO |
| (unsigned) char | ‘\0’ |
| (unsigned) int | 0 |
| (unsigned) long int | 0L |
| (unsigne |
超级会员免费看
订阅专栏 解锁全文
45

被折叠的 条评论
为什么被折叠?



